1. 程式人生 > >Matlab學習筆記(一)--繪圖

Matlab學習筆記(一)--繪圖

1、固定座標軸

1.1  axis函式

axis([xmin xmax ymin ymax zmin zmax])

如果只給出前4個引數,則MATLAB按照給出的x,y的最小值和最大值選擇座標系的範圍,以便繪製二維曲線。如果給出全部引數,則系統按照給出的3個座標軸的最小值和最大值選擇座標系的範圍,以便繪製出合適的三維曲線。

axis函式功能豐富,常用格式還有:

axis equal:橫、縱座標採用等長刻度;

axis square:產生正方形座標系(預設為矩形);

axis auto:使用預設設定;

axis off:取消座標軸;

axis on:顯示座標軸。

給座標加網格線用grid命令來控制,grid on表示加網格線,grid off表示不加網格線,不帶引數的grid命令在兩種狀態之間進行切換。

例:輸入命令:

>>axis([-1,7,-1,7])

>>hold  on  //固化螢幕

此時畫圖視窗座標從(-1,-1)到(7,7).

 

1.2  set函式

使用set可以設定座標軸的一些屬性

例:

axis([0 255 0 15000]);

set(gca,'xtick',[0:50:255]);%設定橫座標軸的間距

set(gca,'ytick',[0:1000:15000]);%設定縱座標軸的間距

set(gca,'color','g');%設定繪圖區域的顏色

1.3  xlim及ylim

例:

xlim([-2 30]);%設定x軸範圍

ylim([12 90]);%設定y周範圍

hold on;

說明:當僅設定一個座標軸的範圍時候,另外一個座標軸將採用’auto’方式.

1.4設定繪圖視窗的繪圖區域位置

haxes=axes('Position',[0.05,0.45,0.9,0.53]);

上面是使用的相對座標,也可以使用絕對座標.

1.5獲取座標軸範圍

h=get(gca,'xlim');%獲取x的範圍

k=get(gca,'ylim');%獲取y的範圍

 

2、繪圖屬性設定

作圖的一些屬性如下表:

         符號

含義

W

白色

k

黑色

r

紅色

y

黃色

m

洋紅色

g

綠色

c

青綠色

 b

藍色

:.

點劃線

.

實心圓

X

叉號符

*

星號

:

虛線

S

正方形

 o (字母o)

空心圓

-- (兩個減號)

雙劃線

+

加號符

d

菱形

^

上三角形

-(減號)

實線(預設)

V

下三角形

>

右三角形

<

左三角形

P

五角星

H

六邊形

注:要同時使用上面的多種屬性時,直接放在一起就行.例如:plot([0,3],[0,3],'b:'),則畫的直線為藍色的虛線.

cla命令可以清除繪圖視窗已有的圖形.

3、繪製直線

3.1使用plot函式

【例一】

畫從(0,1)到(2,3)的直線(實線)

plot([0,2],[1,3],'m')

 

【例二】

畫從(0,0)到(6,3)的直線(虛線)

plot([0,6],[0,3],':')

 

【例三】:通過複數畫直線

畫從(0,1)到(2,3)的直線(實線)

x = [i , 2 + 3 * i];

polt(x,’m’)

 

3.2使用line函式

使用line函式可以繪製直線,可以在二維平面畫直線,也可以在三維平面畫直線.

【例一】:

axis([-2 2 -2 2]);

hold on ;

t = 0:(2*pi/50):(2*pi) ;

plot(sin(t),cos(t),'-r');

line(sin(12*t),cos(12*t),'Marker','.','LineStyle','-','color','b');

【例二】:

axis([-2 2 -2 2]);

hold on ;

axis square ;   

t = 0:(2*pi/50):(2*pi) ;

plot(sin(t),cos(t));

%通過定義一個結構體來設定屬性

PS.Color=[0.8 0.9 0.2];

PS.LineWidth=2;

PS.Marker = '*';

line(sin(12*t),cos(12*t),PS);

【例三】:小球運動

% 產生封閉的運動軌線

t1=(0:1000)/1000*10*pi;x1=cos(t1);y1=sin(t1);z1=-t1;

t2=(0:10)/10;x2=x1(end)*(1-t2);y2=y1(end)*(1-t2);z2=z1(end)*ones(size(x2));

t3=t2;z3=(1-t3)*z1(end);x3=zeros(size(z3));y3=x3;

t4=t2;x4=t4;y4=zeros(size(x4));z4=y4;

x=[x1 x2 x3 x4];y=[y1 y2 y3 y4];z=[z1 z2 z3 z4];

plot3(x,y,z,'b'),         axis off               % 繪製曲線

% 定義"線"色、"點"型(點)、點的大小(40)

h=line('Color',[1 0 0],'Marker','.','MarkerSize',40);

% 使小球運動

n=length(x);i=1;

while 1                                                                                                                    

   set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i)); 

   drawnow;                                                                                                        

   pause(0.0005)                                                                                                

   i=i+1;

   if i>n

      break;

   end

end

 

4、圖形標註

4.1  text函式

【例一】

在座標(1,-0.2)出輸出字元’3’

text(1,-0.2,num2str(3))

注:num2str()函式功能是將數字轉換成字串

【例二】

在(2,3)處標出其座標

text(2,3,'(2,3)')

 

4.2  legend函式

legend函式可以對同一繪圖視窗的多條曲線進行標註.

使用示例:

程式碼:

figure;

x = -pi:pi/20:pi;

plot(x,cos(x),'-ro',x,sin(x),'-.b')

legend('cos_x','sin_x');

4.3其它標註

title(圖形名稱)

xlabel(x軸說明)

ylabel(y軸說明)

zlabel(z軸說明)

title和xlabel,ylabel,zlabel函式分別用於說明圖形名稱和座標軸的名稱。

 

5、設定曲線樣式

圖4-1 線型選項

選項

線型

選項

線型

-

實線(預設值)

-.

點劃線

:

虛線

--

雙劃線

 

圖4-2 顏色選項

序號

選項

顏色

序號

選項

顏色

1

b (blue)

藍色

5

m (magenta)

品紅色

2

g (green)

綠色

6

y (yellow)

黃色

3

r (red)

紅色

7

k (black)

黑色

4

c (cyan)

青色

8

w (white)

白色

 

圖4-3 標記符號選項

選項

標記符號

選項

標記符號

.

v

朝下三角符號

o(字母)

圓圈

^

朝上三角符號

x(字母)

叉號

<

朝左三角符號

+

加與

>

朝右三角符號

*

星號

p (pentagram)

五角星符

s (square)

方塊符

h (hexagram)

六角星符

d (diamond)

菱形符

 

 

6、使用雙座標軸繪製圖形

plotyy函式可以在雙座標軸上繪製曲線.

使用格式:

[AX,h1,h2] = plotyy(x1,y1,x2,y2)

說明:

AX為繪圖的縱座標的控制代碼,AX(1)代表左邊縱座標的控制代碼,AX(2)代表右邊縱座標的控制代碼;h1為左邊圖形的控制代碼;h2為右邊圖形的控制代碼.

使用示例:

figure;

x = -pi:pi/20:pi;

[AX,hl,hr] = plotyy(x,10*cos(x),x,sin(x));

set(hl,'LineStyle','--');%設定左邊圖形屬性

set(hr,'LineStyle','.');%設定右邊圖形屬性

set(get(AX(1),'Ylabel'),'String','餘弦曲線') ;

set(get(AX(2),'Ylabel'),'String','正弦曲線') ;

 

7、圖形視窗的分割

subplot函式的呼叫格式為:

subplot(m,n,p)

該函式將當前圖形視窗分成m×n個繪圖區,即m行n列個繪圖區,區號按行優先編號,且選定第p個區為當前活動區。在每個繪圖區允許以不同的座標系單獨繪製圖形。

8、隱函式繪圖

MATLAB提供了一個ezplot函式繪製隱函式圖形,下面介紹其用法。

(1) 對於函式f = f(x),ezplot函式的呼叫格式為:

ezplot(f):在預設區間-2π<x<2π繪製f = f(x)的圖形。

ezplot(f, [a,b]):在區間a<x<b繪製f = f(x)的圖形。

(2) 對於隱函式f = f(x,y),ezplot函式的呼叫格式為:

ezplot(f):在預設區間-2π<x<2π和-2π<y<2π繪製f(x,y) = 0的圖形。

ezplot(f, [xmin,xmax,ymin,ymax]):在區間xmin<x<xmax和ymin<y<ymax繪製f(x,y) = 0的圖形。

ezplot(f, [a,b]):在區間a<x<b和a<y< b繪製f(x,y) = 0的圖形。

(3) 對於引數方程x = x(t)和y = y(t),ezplot函式的呼叫格式為:

ezplot(x,y):在預設區間0<t<2π繪製x=x(t)和y=y(t)的圖形。

ezplot(x,y, [tmin,tmax]):在區間tmin < t < tmax繪製x=x(t)和y=y(t)的圖形。

【例一】

x = 'sin(2*t^2)' ;

y = 'sin(t)+2*cos(t)';

ezplot(x,y,[-5,5]);

【例二】

f = ezplot('x^2+y^2=2',[-2,2]);

set(f,'color','red');

【例三】

z = 'x.^2+2*cos(y)';

f = ezplot(z,[-2,2,-pi,pi]);

set(f,'color','red');