1. 程式人生 > >Matlab多個座標軸實現技巧

Matlab多個座標軸實現技巧

    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')