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