同一图上的多个图

时间:2012-06-23 05:25:52

标签: matlab plot

x = [0.35, 0.65, 0.8, 1]
y1 = [0.1, 0.21, 0.29, 0.35]
y2 = [0.11, 0.26, 0.28, 0.39]
y3 = [0.1, 0.2, 0.28, 0.36]
y4 = [0.1, 0.25, 0.31, 0.37]

我需要在同一图表上绘制所有这些数据,这样就有一个x轴和两个y轴,一个在左边,一个在右边。 y轴的间隔为0.1:0.1:0.4,x轴的间隔为0:0.1:1

我试过plotyy

[ax, h1, h2] = plotyy(x, y2, x, y4);
hold on
[bx, h3, h4] = plotyy(x, y3, x, y1);

但其中一个向量不会在同一图表上绘制。当你运行它,并使用图表上的PAN选项时,你会发现只有3条曲线被绘制,而4 th 曲线被绘制在另一个数字上。当我检查图例时,我只得到3条曲线,而不是4条。

2 个答案:

答案 0 :(得分:5)

这样的事情怎么样:

plot(x, [y1(:) y2(:) y3(:) y4(:)])
legend({'y1' 'y2' 'y3' 'y4'}, 'Location','NorthWest')
set(gca, 'XLim',[0 1], 'YLim',[0.1 0.4])

screenshot

答案 1 :(得分:0)

跳过hold并使用

[ax, h1, h2] = plotyy(x, [y2;y3], x, [y4;y1]);

修改 这是一种黑客攻击,因为它不支持x不同的数据集。那是y2y3应该为同一x指定。 y4y1也是如此。