Matlab中畫圖以及plot函數及legend函數詳解

Matlab中plot函數及legend函數詳解


Matlab中plot函數全功能解析Matlab中plot函數及legend函數詳解

功能

二維曲線繪圖

語法

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

% see also http://www.matlabsky.com

% 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'               least conflict with data in plot
        'BestOutside'        least unused space outside plot


        'North'             圖例標識放在圖頂端
        'South'            圖例標識放在圖底端
        'East'               圖例標識放在圖右方
        'West'              圖例標識放在圖左方
        'NorthEast'       圖例標識放在圖右上方(默認)
        'NorthWest      圖例標識放在圖左上方
        'SouthEast'      圖例標識放在圖右下角
        'SouthWest'     圖例標識放在圖左下角
(以上幾個都是將圖例標識放在框圖內)
        'NorthOutside'          圖例標識放在圖框外側上方
        'SouthOutside'         圖例標識放在圖框外側下方
        'EastOutside'           圖例標識放在圖框外側右方
        'WestOutside'          圖例標識放在圖框外側左方
        'NorthEastOutside'   圖例標識放在圖框外側右上方
        'NorthWestOutside' 圖例標識放在圖框外側左上方
        'SouthEastOutside'   圖例標識放在圖框外側右下方
        'SouthWestOutside' 圖例標識放在圖框外側左下方
(以上幾個將圖例標識放在框圖外)
        'Best'                      圖標標識放在圖框內不與圖衝突的最佳位置
        'BestOutside'           圖標標識放在圖框外使用最小空間的最佳位置 
還是用上面的例子


legend('sin','cos','location','northwest')可以將標識框放置在圖的左上角。

 

    Examples:
        x = 0:.2:12;
        plot(x,bessel(1,x),x,bessel(2,x),x,bessel(3,x));
        legend('First','Second','Third');
        legend('First','Second','Third','Location','NorthEastOutside')

        b = bar(rand(10,5),'stacked'); colormap(summer); hold on
        x = plot(1:10,5*rand(10,1),'marker','square','markersize',12,...
                 'markeredgecolor','y','markerfacecolor',[.6 0 .6],...
                 'linestyle','-','color','r','linewidth',2); hold off
        legend([b,x],'Carrots','Peas','Peppers','Green Beans',...
                  'Cucumbers','Eggplant')

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章