二維曲線繪圖
語法
1 2 3 4 5 6 7 | plot(Y) plot(X1,Y1,...) plot(X1,Y1,LineSpec,...) plot(..., 'PropertyName' ,PropertyValue,...) plot(axes_handle,...) h = plot(...) hlines = plot( 'v6' ,...) |
描述
plot(Y)如果Y是m×n的數組,以1:m爲X橫座標,Y中的每一列元素爲Y座標,繪製n條曲線;如果Y是n×1或者1×n的向量,則以1:n爲橫座標,Y爲座標表繪製1條曲線;如果Y是複數,則plot(Y)等效於plot(real(Y),imag(Y));其它使用情況下,忽略座標數據中的虛部。
plot(X1,Y1,…)如果X和Y都是數組,按列取座標數據繪圖,此時它們必須具有相同的尺寸;如果X和Y其中一個是向量另一個爲數組,X和Y中尺寸相等的方向對應繪製多條曲線;如果X和Y其中一個是標量另一個爲向量,那麼將繪製垂直X或者Y軸離散的點。
X |
Y |
|
備註 |
m×n |
m×n |
按列取座標數據繪製n條曲線 |
X和Y必須具有相同的尺寸 |
1×n或n×1 |
m×n或n×m |
自動匹配尺寸相同方向繪製m條曲線 |
任意四種組合,效果一樣 |
m×n或n×m |
1×n或n×1 |
同上 |
同上 |
1×1 |
1×n或n×1 |
繪製垂直X軸離散點 |
Y可以任意向量 |
1×n或n×1 |
1×1 |
繪製垂直Y軸離散點 |
X可以任意向量 |
plot(X1,Y1,LineSpec,…)通過參數LineSpec指定曲線的曲線屬性,它包括線型、標記符和顏色。plot函數支持同時繪製任意組圖形
1 | plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2,...) |
此時完全等效於
1 2 3 4 5 | plot(X1,Y1,LineSpec1,...) hlod all plot(X2,Y2,LineSpec2,...) |
MATLAB中提供的線型屬性有:
線型 |
說明 |
標記符 |
說明 |
顏色 |
說明 |
- |
實線(默認) |
+ |
加號符 |
r |
紅色 |
– |
雙劃線 |
o |
空心圓 |
g |
綠色 |
: |
虛線 |
* |
星號 |
b |
藍色 |
:. |
點劃線 |
. |
實心圓 |
c |
青綠色 |
|
|
x |
叉號符 |
m |
洋紅色 |
|
|
s |
正方形 |
y |
黃色 |
|
|
d |
菱形 |
k |
黑色 |
|
|
^ |
上三角形 |
w |
白色 |
|
|
v |
下三角形 |
|
|
|
|
> |
右三角形 |
|
|
|
|
< |
左三角形 |
|
|
|
|
p |
五角星 |
|
|
|
|
h |
六邊形 |
|
|
需要說明的是,LineSpec中設置曲線線型、標識符和顏色三項屬性時,控制符的順序不受限制並可以省略或者部分省略。也就是說’r-.*’、’-.r*’、’*-.r’等形式是等效的,都表示使用紅色點劃線連接各個節點,各節點使用“*”標識。
1 2 3 | plot(..., 'PropertyName' ,PropertyValue,...)設置由plot創建的所有曲線句柄對象的屬性,Line對象屬性和屬性值參見附錄,具體設置參考下面的實例,當然可以使用set/get進行設置。 plot(axes_handle,...)指定座標系,也就是在axes_handle座標系中繪圖,在沒有指定時默認爲gca。 |
h = plot(…)返回由plot創建的所有曲線句柄對象的句柄。每條曲線對應一個句柄,如果有n條曲線,則h爲n×1的數組。
注意
在同時繪製多條曲線時,如果沒有指定曲線屬性,plot按順序循環使用當前座標系中ColorOrder和LineStyleOrder兩個屬性。
默認情況,MATLAB在每次調用plot函數時將ColorOrder和LineStyleOrder自動重置爲DefaultAxesColorOrder和DefaultAxesLineStyleOrder。Default**屬性我們可以自定義,有效期至MATLAB關閉,Matlab下次啓動時將Default**屬性重置爲廠家設置(Factory)
1 2 3 | set( 0 , 'DefaultAxesColorOrder' ,’r|g|b|k’,... 'DefaultAxesLineStyleOrder' , '-|-.|--|:' ) |
使用hold all命令可以阻止調用plot函數時自動重置ColorOrder和LineStyleOrder屬性,而是循環使用。注意hold on只是使多次繪製的圖形疊加(相當於NextPlot),但不能阻止屬性重置。
另外我們可以通過下面四個屬性設置標識符的顏色和大小
1 2 3 4 5 6 7 | LineWidth——指定線寬 MarkerEdgeColor——指定標識符的邊緣顏色 MarkerFaceColor——指定標識符填充顏色 MarkerSize——指定標識符的大小 |
注意上面四個屬性是針對當前座標系中所有曲線的
實例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | % by dynamic % see also http: //www.matlabsky.com % 2009.8 . 20 % X= 1 : 10 ; % 兩個都是數組,必須具有相同的尺寸 X1=[X;X;X]';% 10 × 3 Y1=rand( 10 , 3 )+ 1 ;% 10 × 3 % 其中一個爲向量,另一個爲數組,自動匹配尺寸相等方向 X2= 1 : 0.1 : 10 ;% 1 × 91 Y2=[sin(X2);cos(X2)]';% 91 × 2 % 其中一個是標量,另一爲矢量,繪製垂直座標軸的離散點 X3= 1 : 10 ; Y3=- 0.5 ; fh=figure( 'numbertitle' , 'off' , 'name' , 'PLOT Usability Demo' );%創建figure對象 ah=axes;%創建axes對象 h=plot(...%返回所有曲線句柄 ah,...%指定座標系,可以省略,此時默認gca X1,Y1,...%座標數據 '-.^' ,...%曲線屬性,可以省略或部分省略,此時自動選擇 X2,Y2,... 'm-' ,... X3,Y3,... 'o' ,...%注意此組數據設置線型和顏色無效,因爲默認繪製離散點 'LineWidth' , 2 ,...%線寬 'MarkerEdgeColor' , 'k' ,...%標識符邊緣顏色 'MarkerFaceColor' , 'r' ,...%標識符填充顏色 'MarkerSize' , 8 )%標識符大小 |
subplot函數解析:
subplot是將多個圖畫到一個平面上的工具。其中,m表示是圖排成m行,n表示圖排成n列,也就是整個figure中有n個圖是排成一行的,一共m行,如果第一個數字是2就是表示2行圖。p是指你現在要把曲線畫到figure中哪個圖上,最後一個如果是1表示是從左到右第一個位置。下面是這個例子,可加深理解:
x1=[1 2 3];x2=x1;x3=x2;x4=x1;
y1=[2 4 6];y2=2*y1;y3=3*y1;y4=4*y1;
subplot(2,2,1)
plot(x1,y1);
axis([0,20,0,20])
subplot(2,2,2)
plot(x2,y2);
axis([0,20,0,20])
subplot(2,2,3)
plot(x3,y3)
axis([0,20,0,20])
subplot(2,2,4)
plot(x4,y4)
axis([0,20,0,20])
結果爲: