多個系列以下命令將產生一些非常奇怪的結果 -繪製在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