matlab用三个坐标轴,【Matlab学习手记】Matlab多个坐标轴实现技巧

Matlab2016B版本提供了一个plotyy函数,可以提供左右两个纵坐标轴,如果需要三个纵坐标轴甚至多个,怎么做,这里提供一种简单的技巧,效果如下:

matlab用三个坐标轴,【Matlab学习手记】Matlab多个坐标轴实现技巧_第1张图片

这种方式可以修改任何一条线的属性和坐标轴属性,极为方便。

代码如下:

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

你可能感兴趣的:(matlab用三个坐标轴)