Matlab中的plotyy用法總結

2021-09-12 09:19:07 字數 2184 閱讀 5701

在梳理資料,或者寫**的時候往往需要畫出兩個縱座標不同的圖,以顯現兩組資料的不同變化,在這種情況下,一般兩組資料的橫座標均是相同的,但是縱座標確實不是乙個數量級的,所以為了更好的表現兩組資料的變化趨勢,需要用到plotyy函式繪製雙縱座標的二維圖,具體用法總結如下:

呼叫格式:

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)為右側軸。

注意事項:

ax返回的是兩個座標軸的控制代碼,而h1和h2則是表示的每個影象的控制代碼。

左縱軸用於x1-y1資料對,右縱軸用於x2-y2資料對。

軸的範圍、刻度都自動產生。如果要人工設定,必須使用axis函式。

fun、fun1、fun2可以是matlab中所有接受x-y資料對的二維繪圖指令,如plot函式。

(1)如何設定座標軸刻度?

需要設定雙y軸的刻度,用到以下函式,

set(gca,'xtick',[0:15:100])

set(gca,'ytick',[0:20:350])

只是設定左邊的y軸刻度,那麼,右邊y軸怎麼設定刻度標註?

[ax]=plotyy(x1,y1,x1,y2);

得到兩個axes控制代碼,ax(1)和ax(2)

set(ax(1),'ytick',[0:15:350])  %設定左邊y軸的刻度

set(ax(2),'ytick',[0:30:350]) %設定右邊y軸的刻度

(2)如何設定座標軸的標註

雙縱座標的標註實現

[ax]=plotyy(x1,y1,x1,y2);

set(get(ax(1),'ylabel'),'string','left y-axis『);

set(get(ax(2),'ylabel'),'string','right y-axis');

例如:figure;

t=0:1:9*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);

(3)如何設定線型?

例如:t=0:0.1:9;

[ax,h1,h2]=plotyy(t,sin(t),t,cos(t));

set(h1,'linestyle','-','marker','o','color','r');

set(h2,'linestyle',':','marker','x','color','b');

(4)如何加註圖例?

例如:x=linspace(0,2*pi,50);

[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,50);

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);  %加註圖例

可以看到,對座標軸操作使用ax控制代碼,而對影象操作使用h1和h2;

matlab中冒號的用發

對於 a 四行五列 矩陣 a 2 3,1 2 5 是什麼意思 問題補充 能解釋下為什麼是一,三 五列滿意回答 顯示a的第二行與第三行的第 一 三 五列。因為矩陣後面如果是圓括號,那麼都表示引用,即矩陣元素的位置 下面是例子 a 1 2 3 4 5 4 5 6 7 8 0 1 4 7 8 0 2 5 ...

matlab中mapminmax 函式的用法

畢設使用的函式,記錄一下方便回憶help mapminmax mapminmax map matrix row minimum and maximum values to 1 1 y,settings mapminmax x takes a matrix and returns it transfo...

用MATLAB計算函式的積分

很基礎但是很實用,自己寫的時候知道一些指令,但是搭配在一起就用的不太好 a x 36 x 11 n quadrat x c.2 omega0.4 x.4.1 2.d.omega0 x 2 1 1.omega0 x 2 2 2.d.omega0 x 2 n quadrat 是x的函式 這種都是常見的語...