Matlab多個座標軸實現技巧
阿新 • • 發佈:2019-02-03
Matlab2016B版本提供了一個plotyy函式,可以提供左右兩個縱座標軸,如果需要三個縱座標軸甚至多個,怎麼做,這裡提供一種簡單的技巧,效果如下:
這種方式可以修改任何一條線的屬性和座標軸屬性,極為方便。
程式碼如下:
clear; clc; x=0:0.1:2*pi; y1 = x.^2; y2 = sin(x); y3 = 5*y2; h1 = axes('position', [0.1 0.1 0.5 0.5]); % 控制小圖大小和位置 % 歸一化到同一個尺度 plot(x, y1, x, y2*max(y1)/max(y2), 'r', x, 0.8*y3*max(y1)/max(y3), 'b') set(h1, 'yaxislocation', 'right') ylabel('test1'); h2 = axes('position', [0.7 0.1 0.01 0.5], 'color', 'r'); plot(x, y1, 'w') set(h2, 'ycolor', 'r') box off ylabel('test2'); set(h2, 'yaxislocation', 'right', 'xtick', []) h3 = axes('position', [0.8 0.1 0.01 0.5]); plot(x, y2, 'w') set(h3, 'ycolor', 'b') box off ylabel('test3'); set(h3, 'yaxislocation', 'right', 'xtick', []) set(h1, 'color','none') set(h2, 'color','none') set(h3, 'color','none') set(gcf,'color','white')