2
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曲线绘制在另一个图形上。当我检查图例时,U 只得到 3 条曲线,而不是 4 条。

4

2 回答 2

5

像这样的东西怎么样:

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

截屏

于 2012-06-23T05:53:33.723 回答
0

跳过hold并使用

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

编辑: 这是一种 hack,因为它不支持 x 不同的数据集。也就是说y2y3应该为相同的x. y4和也是如此y1

于 2012-06-23T13:27:35.713 回答