使用 yyaxis 函数可创建一个左右两侧都有 y 轴的 Axes
对象。与 y 轴有关的坐标区属性有两个值。但是,MATLAB® 仅允许访问活动侧的值。例如,如果左侧处于活动状态,则 Axes
对象的 YDir
属性包含左侧 y 轴的方向。同样,如果右侧处于活动状态,则 YDir
属性包含右侧的 y 轴的方向。有一个例外是 YAxis
属性,它包含由两个标尺对象(每个 y 轴各一个)组成的数组。
您可以按照下面两种方式中的任何一种,来更改特定 y 轴的外观和行为:
-
设置活动侧,然后更改
Axes
对象的属性值。 -
通过
Axes
对象的YAxis
属性访问标尺对象,然后更改该标尺对象的属性值。
1.更改坐标区属性
通过设置 Axes
属性修改包含双 y 轴的图形的属性。
创建一个包含两个 y 轴的图表,然后绘制数据图。
x = [1 2 3];
y1 = [2 6 4; 3 5 4; 5 7 8];
y2 = 100*[5 5 3; 3 4 7; 5 6 3];
figure
yyaxis left
plot(x,y1)
yyaxis right
plot(x,y2)
反转每个 y 轴值递增的方向。使用 yyaxis left
激活左侧,并设置左侧 y 轴的方向。同样,使用 yyaxis right
激活右侧。然后,设置右侧 y 轴的方向。
ax = gca;
yyaxis left
ax.YDir = 'reverse';
yyaxis right
ax.YDir = 'reverse';
2.更改标尺属性
通过设置标尺属性修改包含双 y 轴的图形的属性。
创建一个包含两个 y 轴的图表,然后绘制数据图。
x = [1 2 3];
y1 = [2 6 4; 3 5 4; 5 7 8];
y2 = 100*[5 5 3; 3 4 7; 5 6 3];
figure
yyaxis left
plot(x,y1)
yyaxis right
plot(x,y2)
通过设置与每个轴相关联的标尺对象的属性,反转 y 轴值递增的方向。使用 ax.YAxis(1)
表示左侧标尺,ax.YAxis(2)
表示右侧标尺。
ax = gca;
ax.YAxis(1).Direction = 'reverse';
ax.YAxis(2).Direction = 'reverse';
3.使用默认色序指定颜色
通过更改默认的坐标区色序,为带有两个 y 轴的图表指定颜色。
创建一个图窗。定义两个 RGB 颜色值,一个值对应左侧,一个值对应右侧。在创建坐标区前,先将默认的坐标区色序更改为这两种颜色。在图窗级别设置默认值,以使新颜色仅影响属于图窗 fig
子级的坐标区。新颜色不影响其他图窗中的坐标区。然后创建图形。
fig = figure;
left_color = [.5 .5 0];
right_color = [0 .5 .5];
set(fig,'defaultAxesColorOrder',[left_color; right_color]);
y = [1 2 3; 4 5 6];
yyaxis left
plot(y)
z = [6 5 4; 3 2 1];
yyaxis right
plot(z)