Plotting data on binary axis and draw lines between points
5 次查看(过去 30 天)
显示 更早的评论
Hi everyone,
I am trying to plot very simple data to better visualise the overall result. I've searched all I could think of, but I haven't been able to find any function able to do what I have in mind. I have 2 sets of data:
x1 = 2.6, 1.5, 1.4, 0.8, 3.2
y1 = 0.001, 0.9, 0.2, 0.5, 0.3
I want to plot both of these (x1 and y1) next to each other, on binary axes, using 'o' funtion for the data points and join the respective data points (i.e. 2.6 - 0.001, 1.5 - 0.9) with a line.
My problem, everything I tried so far hasn't worked or it re-arranges the axes and I dont know how to fix it. Please see the hand-drawn version of what I have in mind.
Any suggestions would be very appreciated!

0 个评论
采纳的回答
Star Strider
2022-9-5
编辑:Star Strider
2022-9-5
Perhaps something like this —
x1 = [2.6, 1.5, 1.4, 0.8, 3.2];
y1 = [0.001, 0.9, 0.2, 0.5, 0.3];
figure
hs = scatter([1 2],[x1; y1].', 'filled');
hold on
plot([1 2], [x1([1 2]); y1([1 2])], 'LineWidth',3)
hold off
set(gca, 'XTick',[1 2], 'XTickLabel',{'x_1','y_1'})
xline(1.5,'--k')
xlim([0.5 2.5])
.
6 个评论
Star Strider
2022-9-5
My first post (before the edit) was simply —
x1 = [2.6, 1.5, 1.4, 0.8, 3.2];
y1 = [0.001, 0.9, 0.2, 0.5, 0.3];
figure
plot([1 2], [x1; y1].', '.-', 'MarkerSize',25, 'LineWidth',3)
set(gca, 'XTick',[1 2], 'XTickLabel',{'x_1','y_1'})
xline(1.5,'--k')
xlim([0.5 2.5])
.
更多回答(1 个)
Image Analyst
2022-9-5
Try this:
x1 = [2.6, 1.5, 1.4, 0.8, 3.2];
y1 = [0.001, 0.9, 0.2, 0.5, 0.3];
plotColors = jet(length(x1));
for k = 1 : length(x1)
plot([0.5, 1.5], [x1(k), y1(k)], '.-', ...
'Color', plotColors(k, :), 'LineWidth', 3,'MarkerSize', 50)
hold on;
end
grid on;
xline(1, 'LineStyle','--', 'Color', 'k', 'LineWidth',2)
xlim([0, 2]);
xticks([0 : 0.5 : 2])
xticklabels({[], 'x1', [], 'y1'})
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Performance 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!