多个系列以下命令将产生一些非常奇怪的结果 -绘制在MATLAB
plotyy(1:3,2:4,3:5,4:6)
hold on
plotyy(1:3,2.1:4.1,3:5,4.1:6.1)
我基本上要绘制左侧y轴两个不同的系列和右侧y轴两个系列。上述命令对左边的系列工作正常,但对于正确的结果会产生奇怪的结果。第二条绿线不像它应该。
多个系列以下命令将产生一些非常奇怪的结果 -绘制在MATLAB
plotyy(1:3,2:4,3:5,4:6)
hold on
plotyy(1:3,2.1:4.1,3:5,4.1:6.1)
我基本上要绘制左侧y轴两个不同的系列和右侧y轴两个系列。上述命令对左边的系列工作正常,但对于正确的结果会产生奇怪的结果。第二条绿线不像它应该。
您遇到的问题与plotyy
创建它们的方式有关。 plotyy
创建它绘制的两个不同的轴,然后将它们安装到一个图中。当你发出hold on
命令时,你只能冻结其中一个轴。要解决这个问题,你需要单独保存每一个,然后使用plot
命令将它们绘制回去。
[ax,hl,hr] = plotyy(1:3,2:4,3:5,4:6);
hold(ax(1), 'on')
hold(ax(2), 'on')
plot(ax(1), 1:3,2.1:4.1)
plot(ax(2), 3:5,4.1:6.1)
确实很奇怪的行为。为了好玩,在绘图窗口中选择“手形”工具,然后拖动图形,您会看到两条绿色曲线中只有一条移动,而右侧则有两组标签互相重叠。我认为这是matlab中的一个错误(远离Matlab绘图中唯一的丑陋行为)。这似乎是你想要达到什么样的解决方法:
[AX, H1, H2] = plotyy(1:3, [2:4;2.1:4.1], 3:5,[4:6;4.1:6.1]);
>> set(H1, 'color','b')
>> set(H2, 'color','g')
注意,这仅仅在进行左侧的两个地块具有相同的一组x值,以及类似的合适地块,像你的情况。 A = [4000; 0; 1]。但这是一种解决方法,真正的解决方案是由slbass提供的。
查看http://www.mathworks.co.uk/matlabcentral/newsreader/view_thread/112018 – marsei