1. 程式人生 > >Matlab中plot函式及legend函式詳解

Matlab中plot函式及legend函式詳解

Matlab中plot函式全功能解析

功能

二維曲線繪圖

語法

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函式支援同時繪製任意組圖形

plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2,...)

此時完全等效於

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'等形式是等效的,都表示使用紅色點劃線連線各個節點,各節點使用“*”標識。

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)

set(0,'DefaultAxesColorOrder',’r|g|b|k’,...
 'DefaultAxesLineStyleOrder','-|-.|--|:')

使用hold all命令可以阻止呼叫plot函式時自動重置ColorOrder和LineStyleOrder屬性,而是迴圈使用。注意hold on只是使多次繪製的圖形疊加(相當於NextPlot),但不能阻止屬性重置。

另外我們可以通過下面四個屬性設定識別符號的顏色和大小

LineWidth——指定線寬

MarkerEdgeColor——指定識別符號的邊緣顏色

MarkerFaceColor——指定識別符號填充顏色

MarkerSize——指定識別符號的大小

注意上面四個屬性是針對當前座標系中所有曲線的

例項

% by dynamic

% 2009.8.20

%

X=1:10;

% 兩個都是陣列,必須具有相同的尺寸

X1=[X;X;X]';×3

Y1=rand(10,3)+1;×3

% 其中一個為向量,另一個為陣列,自動匹配尺寸相等方向

X2=1:0.1:10;%1×91

Y2=[sin(X2);cos(X2)]';�×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)%識別符號大小

legend函式的基本用法是

LEGEND(string1,string2,string3, ...)

分別將字串1、字串2、字串3……標註到圖中,每個字串對應的圖示為畫圖時的圖示。

例如:

plot(x,sin(x),'.b',x,cos(x),'+r')

legend('sin','cos')這樣可以把"."標識為'sin',把"+"標識為"cos"

還可以用LEGEND(...,'Location',LOC) 來指定圖例標識框的位置

這些是Matlab help檔案。後面一段是對應的翻譯和說明

        'North'              inside plot box near top
        'South'              inside bottom
        'East'               inside right
        'West'               inside left
        'NorthEast'          inside top right (default)
        'NorthWest           inside top left
        'SouthEast'          inside bottom right
        'SouthWest'          inside bottom left
        'NorthOutside'       outside plot box near top
        'SouthOutside'       outside bottom
        'EastOutside'        outside right
        'WestOutside'        outside left
        'NorthEastOutside'   outside top right
        'NorthWestOutside'   outside top left
        'SouthEastOutside'   outside bottom right
        'SouthWestOutside'   outside bottom left
        'Best'