天天看點

【MATLAB】進階繪圖 ( 雙 y 軸圖形 | plotyy 函數 | Histogram 統計圖形 | hist 函數 )

文章目錄

  • ​​一、雙 y 軸圖​​
  • ​​1、plotyy 函數​​
  • ​​2、使用場景​​
  • ​​3、代碼示例​​
  • ​​二、Histogram 統計圖形​​
  • ​​1、hist 函數​​
  • ​​2、代碼示例​​

一、雙 y 軸圖

1、plotyy 函數

plotyy 函數參考文檔 : ​​https://ww2.mathworks.cn/help/matlab/ref/plotyy.html​​

( 過時了 , 這裡簡單介紹下 , 官方推薦使用 yyaxis 函數 )

plotyy 函數繪制的坐标軸圖形有兩個

y

y

y 軸 ;

plotyy 文法 : 傳回值有

3

3

3 個元素 ;

  • AX 是坐标系 axis 句柄值 ;
  • 曲線 1 的句柄值是 H1 ;
  • 曲線 2 的句柄值是 H2
% 使用 plotyy 繪制兩條曲線
% AX 是坐标系 axis 句柄值
% 曲線 1 的句柄值是 H1
% 曲線 2 的句柄值是 H2
[AX, H1, H2] = plotyy(x, y1, x, y2);      

2、使用場景

使用場景 :

繪制如下公式 :

y

=

a

e

b

x

sin

(

c

x

)

y = a e^{-bx} \sin(cx)

y=ae−bxsin(cx)

同時繪制不同的

a

,

b

,

c

a,b, c

a,b,c 參數的曲線 ,

曲線

1

1

1 :

y

=

200

e

0.05

x

sin

(

x

)

y = 200 e^{-0.05x} \sin(x)

y=200e−0.05xsin(x)

曲線

2

2

2 :

y

=

0.8

e

0.5

x

sin

(

10

x

)

y = 0.8 e^{-0.5x} \sin(10x)

y=0.8e−0.5xsin(10x)

在一個坐标軸圖中 , 兩個曲線的取值範圍差距過大 , 曲線

1

1

1 取值範圍

[

200

,

200

]

[-200 , 200]

[−200,200] , 曲線

2

2

2 取值範圍

[

0.8

,

0.8

]

[-0.8, 0.8]

[−0.8,0.8] , 如果使用相同的坐标系 , 如果在

[

200

,

200

]

[-200 , 200]

[−200,200] 的坐标軸上繪制曲線

2

2

2 基本就看不到了 ;

3、代碼示例

代碼示例 :

% x 軸取值
x = 0 : 0.01 : 20;

% 曲線 1 對應的 y 值
y1 = 200 * exp (-0.05 * x) .* sin(x);

% 曲線 2 對應的 y 值
y2 = 0.8 * exp (-0.5 * x) .* sin(10 * x);

% 使用 plotyy 繪制兩條曲線
% AX 是坐标系 axis 句柄值
% 曲線 1 的句柄值是 H1
% 曲線 2 的句柄值是 H2
[AX, H1, H2] = plotyy(x, y1, x, y2);

% 修改坐标軸标注 , 通過 AX 句柄值設定左右兩側 y 軸标注
set(get(AX(1), 'Ylabel'), 'String', '左側 Y1 曲線');
set(get(AX(2), 'Ylabel'), 'String', '右側 Y2 曲線');

% 設定标題
title('雙 y 軸曲線');

% 設定曲線 1 樣式 , 使用 H1 句柄設定 , 虛線
set(H1, 'LineStyle', '--');

% 設定曲線 2 樣式 , 使用 H1 句柄設定 , 實線
set(H2, 'LineStyle', '-');      

繪圖結果 :

【MATLAB】進階繪圖 ( 雙 y 軸圖形 | plotyy 函數 | Histogram 統計圖形 | hist 函數 )

二、Histogram 統計圖形

1、hist 函數

hist 函數參考文檔 : ​​https://ww2.mathworks.cn/help/matlab/ref/hist.html​​

2、代碼示例

代碼示例 :

% 随機生成 1 ~ 1000 之間的數字
y = randn (1, 1000);

% 繪制圖像 1 
subplot (2, 1, 1);

% 繪制直方圖 , 10 個元素
hist (y, 10);

% 繪制圖像 2
subplot (2, 1, 2);

% 繪制直方圖 , 50 個元素
hist (y, 50);      

繪圖結果 :

繼續閱讀