matlab plotty函数的使用

一、线型设置:

t=0:.1:8;
[ax,h1,h2]=plotyy(t,sin(t),t,cos(t)); % plotyy(X1,Y1,X2,Y2):以左、右不同纵轴绘制X1-Y1、X2-Y2两条曲线。
set(h1,'linestyle','-','marker','o','color','r');
set(h2,'linestyle',':','marker','x','color','b');

二、加注图例:

x=linspace(0,2*pi,40);
[ax,h1,h2]=plotyy(x,sin(x)+cos(x),x,exp(x));

set(h1,'linestyle','-')
set(h2,'linestyle','-')
set(h1,'marker','o')
set(h2,'marker','+')
hold on
x=linspace(0,2*pi,40);
hh=line(x,cos(x));
set(hh,'linestyle','-')
set(hh,'marker','s')

hold on
hhf=line(x,sin(x));
set(hhf,'color','r')
set(hhf,'linestyle','-')
set(hhf,'marker','*')
legend([h1,h2,hh,hhf],'sin(x)+cos(x)','exp(x)','cos(x)','sin(x)',0); %加注多条线的图例

扫描二维码关注公众号,回复: 6234243 查看本文章

用法:linspace(x1,x2,N)  

功能:linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、中止值、元素个数。若缺省N,默认点数为100。

三、坐标轴标注:

figure;
t=0:.1:3*pi;
[H,Ha,Hb]=plotyy(t,sin(t),t,exp(t));
d1=get(H(1),'ylabel');
set(d1,'string','yayacpf');
d2=get(H(2),'ylabel');
set(d2,'string','bbs from hit','fontsize',18);

四、双坐标轴

X=[10,30,50,70,100,150,200];
Y1=[0.0501,0.1847,0.1663,0.235,0.2724,0.3491,0.3856];
Y2=[0.0239,0.0545,0.1165,0.1003,0.1413,0.2381,0.2433];
[AX,H1,H2]=plotyy(X,Y1,X,Y2,'plot','plot'); %双y轴图像
xlabel('User ID');
set(get(AX(1),'ylabel'),'string','Average Trust Value');  %对坐标标注
set(get(AX(2),'ylabel'),'string','Normalized NTR, NBTR, NREJ');
set(AX(1),'ytick',[0:0.1:1]);               %控制左边的y轴的刻度标注
set(AX(2),'ytick',[0:0.1:1]);  
set(H1,'marker','*');
set(H2,'marker','o');
set(H2,'LineStyle','none')
legend('Average Trust Value','NTR');

五、legend函数

legend(字符串1,字符串2,字符串3,…,参数)  

参数字符串的含义如下表所示:

参数字符串                                      含  义  
    0                            尽量不与数据冲突,自动放置在最佳位置  

    1                                      放置在图形的右上角  

    2                                      放置在图形的左上角  

    3                                      放置在图形的左下角  

    4                                      放置在图形的右下角  

   -1                                    放置在图形视窗的外右边 

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

[转载]Matlab <wbr>plotyy画双纵坐标图实例
Q:如果要自己设定坐标轴范围怎么办?

A:以设置左边的y坐标轴为例

set(ax(1),'YLim',[-180,180]);

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)

猜你喜欢

转载自blog.csdn.net/myathappy/article/details/83719900
今日推荐