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

猜你喜欢

转载自blog.csdn.net/u012366767/article/details/80797049