You are on page 1of 4

Matlab plotyy 画图实例

x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot');

set(AX(1),'XColor','k','YColor','b');
set(AX(2),'XColor','k','YColor','r');

HH1=get(AX(1),'Ylabel');
set(HH1,'String','Left Y-axis');
set(HH1,'color','b');

HH2=get(AX(2),'Ylabel');
set(HH2,'String','Right Y-axis');
set(HH2,'color','r');

set(H1,'LineStyle','-');
set(H1,'color','b');
set(H2,'LineStyle',':');
set(H2,'color','r');

legend([H1,H2],{'y1 = 200*exp(-0.05*x).*sin(x)';'y2 = 0.8*exp(-0.5*x).*sin(10*x)'});


xlabel('Zero to 20 \musec.');
title('Labeling plotyy');
Q:右边用蓝色圈起来的 tick 能去掉吗?由于用 plotyy 画图,为了使图尽量地显示出来,
用了 set(AX(1),'YLimMode','auto'),但这样可能会导致左边 AX(1)和右边 AX(2)的 tick 的间
距不一样,影响美观。或者说能不能使 plotyy 画出的图两边的 tick 间距是一样的,这样在图
形右边的 tick 就会重合在一起.

A:如果只是想让 plotyy 的图美一些,可以使用其如下形式的调用方式:


[AX,H1,H2] = plotyy(...)
其中 AX(2)就是右边 Axes 对象的句柄,拿到它以后就可以 set 或者 get 来处理了,也可以
把其 ytick 关掉。

A:也可以用 line 语句来画,就没有左边和上边的线了。

Q:plotyy(X1,Y1,X2,Y2,FUN1,FUN2),FUN1 和 FUN2 应该怎么写?

A:这两个 FUN 代表 plotyy 不一定要用两个 plot,比如下面的例子,一条曲线用 plot,一


条用 semilogy

x1=1:0.1:100;
x2=x1;
y1=x1;
y2=x2.^3;
plotyy(x1,y1,x2,y2,@plot,@semilogy)
plotyy MATLAB 函数,用来绘制双纵坐标图,调用格式:

1.plotyy(X1,Y1,X2,Y2):以左、右不同纵轴绘制 X1-Y1、X2-Y2 两条曲线。


  2.plotyy(X1,Y1,X2,Y2,FUN1):以左、右不同纵轴把 X1-Y1、X2-Y2 两条曲线
绘制成 FUN1 指定形式的两条曲线。
  3.plotyy(X1,Y1,X2,Y2,FUN1,FUN2):以左、右不同纵轴把 X1-Y1、X2-Y2
两条曲线绘制成 FUN1、FUN2 指定的不同形式的两条曲线。
  4.[AX,H1,H2]=plotyy(...):返回 AX 中创建的两个坐标轴的句柄以及 H1 和 H2
中每个图形绘图对象的句柄。AX(1)为左侧轴,AX(2)为右侧轴
说明
1.左纵轴用于 X1-Y1 数据对,右纵轴用于 X2-Y2 数据对。2.轴的范围、刻度都自动产生。
如果要人工设置,必须使用 axis 函数。
3.FUN、FUN1、FUN2 可以是 MATLAB 中所有接受 X-Y 数据对的二维绘图指令,
如 plot 函数。
legend 函数的基本用法是

LEGEND(string1,string2,string3, ...)

分别将字符串 1、字符串 2、字符串 3……标注到图中,每个字符串对应的图标为画图时的图


标。

例如:

plot(x,sin(x),'.b',x,cos(x),'+r')

legend('sin','cos')这样可以把"."标识为'sin',把"+"标识为"cos"

还可以用 LEGEND(...,'Location',LOC) 来指定图例标识框的位置

这些是 Matlab help 文件。后面一段是对应的翻译和说明

'North' inside plot box near top


'South' inside bottom
'East' inside right
'West' inside left
'NorthEast' inside top right (default)
'NorthWest inside top left
'SouthEast' inside bottom right
'SouthWest' inside bottom left
'NorthOutside' outside plot box near top
'SouthOutside' outside bottom
'EastOutside' outside right
'WestOutside' outside left
'NorthEastOutside' outside top right
'NorthWestOutside' outside top left
'SouthEastOutside' outside bottom right
'SouthWestOutside' outside bottom left
'Best' least conflict with data in plot
'BestOutside' least unused space outside plot
'North' 图例标识放在图顶端
'South' 图例标识放在图底端
'East' 图例标识放在图右方
'West' 图例标识放在图左方
'NorthEast' 图例标识放在图右上方(默认)
'NorthWest 图例标识放在图左上方
'SouthEast' 图例标识放在图右下角
'SouthWest' 图例标识放在图左下角
(以上几个都是将图例标识放在框图内)
'NorthOutside' 图例标识放在图框外侧上方
'SouthOutside' 图例标识放在图框外侧下方
'EastOutside' 图例标识放在图框外侧右方
'WestOutside' 图例标识放在图框外侧左方
'NorthEastOutside' 图例标识放在图框外侧右上方
'NorthWestOutside' 图例标识放在图框外侧左上方
'SouthEastOutside' 图例标识放在图框外侧右下方
'SouthWestOutside' 图例标识放在图框外侧左下方
(以上几个将图例标识放在框图外)
'Best' 图标标识放在图框内不与图冲突的最佳位置
'BestOutside' 图标标识放在图框外使用最小空间的最佳位置
还是用上面的例子
legend('sin','cos','location','northwest')可以将标识框放置在图的左上角。

You might also like