目录
使用 yyaxis 函数可创建一个左右两侧都有 y 轴的 Axes 对象。与 y 轴有关的坐标区属性有两个值。但是,MATLAB® 仅允许访问活动侧的值。例如,如果左侧处于活动状态,则 Axes 对象的 YDir 属性包含左侧 y 轴的方向。同样,如果右侧处于活动状态,则 YDir 属性包含右侧的 y 轴的方向。有一个例外是 YAxis 属性,它包含由两个标尺对象(每个 y 轴各一个)组成的数组。
可以按照下面两种方式中的任何一种,来更改特定 y 轴的外观和行为:
-
设置活动侧,然后更改 Axes 对象的属性值。
-
通过 Axes 对象的 YAxis 属性访问标尺对象,然后更改该标尺对象的属性值。
更改坐标区属性
通过设置 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';
如图所示:
更改标尺属性
通过设置标尺属性修改包含双 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';
如图所示:
使用默认色序指定颜色
通过更改默认的坐标区色序,为带有两个 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)
如图所示: