在科研中,不管是

實驗資料

還是做

模擬預測

,往往都需要給出資料的

置信區間

誤差限

等值,在畫圖時需給出

誤差帶

。此時,就需要用到

填充圖

,在MATLAB中,可以用

area函式

實現。

1 area函式的基本用法

area

Y

area

X

Y

area

。。。,basevalue)

area

。。。,Name,Value)

area

ax

。。。)

ar

=

area

。。。)

區域圖將 Y 中的元素顯示為一個或多個曲線並填充每個曲線下方的區域。如果 Y 為

矩陣

,則曲線堆疊在一起,顯示每行元素佔每個 x 區間的曲線總高度的相對量。

area(Y) 繪製向量 Y 或將矩陣 Y 中每一列作為單獨曲線繪製並堆疊顯示。x 軸自動縮放到 1:size(Y,1)。Y 中的值可以是數值或持續時間值。

area(X,Y) 繪製 Y 對 X 的圖,並填充 0 和 Y 之間的區域。X 的值可以是數值、日期時間、持續時間或分類值。

如果 Y 是向量,則將 X 指定為由遞增值組成的向量,其長度等於 Y。如果 X 的值不增加,則 area 將在繪製之前對值進行排序。

如果 Y 是矩陣,則將 X 指定為由遞增值組成的向量,其長度等於 Y 的行數。area 將 Y 的列繪製為

填充區域

。對於每個 X,最終結果是 Y 行的相應值的和。您還可以將 X 指定為大小等於 Y 的矩陣。為了避免 X 為矩陣時出現意外輸出,請將 X 的列指定為重複列。

area(。。。,basevalue) 指定區域填充的基值。預設 basevalue 為 0。將基值指定為數值。

area(。。。,Name,Value) 使用一個或多個名稱-值對組引數修改區域圖。

area(ax,。。。) 將圖形繪製到 ax 座標區中,而不是當前座標區 (gca) 中。

ar = area(。。。) 返回一個或多個 Area 物件。area 函式將為向量輸入引數建立一個 Area 物件。它會為矩陣輸入引數的每一列建立一個物件。

建立 m×n 矩陣的區域圖會建立 n 個

區域序列物件

(即每列一個),而 1×n 向量建立一個區域序列物件。

[1]

1.1 示例1

clc

%https://zhuanlan。zhihu。com/p/312069817

clear

all

close

all

x

=

0

0。01

pi

];

y

(:,

1

=

sin

x

);

y

(:,

2

=

abs

cos

x

));

subplot

1

2

1

area

y

xlim

([

0

314

])

subplot

1

2

2

area

y

-

4

xlim

([

0

314

])

MATLAB畫圖技巧與例項(四):填充圖area函式

這裡我們考慮的是 sin(x) 和 |cos(x)| 兩個函式。

area函式的預設基準面是x軸,如上左圖所示。要想指定特殊

基準面

,直接在命寧area(y, basevalue)中,指定basevalue的值即可。這裡指定值為-4,如上右圖所示。

第一個顏色是

sin(x)函式

與x軸圍成的,第二個顏色是在sin(x)函式基本上,疊加|cos(x)|函式圍成的,此時最上面的線相當於sin(x) + |cos(x)|。

又一示例如下。

clc

%https://zhuanlan。zhihu。com/p/312069817

clear

all

close

all

x

=

0

0。01

pi

];

y

(:,

1

=

sin

x

);

y

(:,

2

=

cos

x

));

area

y

xlim

([

0

314

])

MATLAB畫圖技巧與例項(四):填充圖area函式

可以看出,第二個顏色是兩個函式之間的填充。

1.2 示例2

area函式x軸是預設的,但是我們也可以指定其他值,可以是數值、日期時間、持續時間或分類值等等。

上圖x值已經了,例如日期。

clc

%https://zhuanlan。zhihu。com/p/312069817

clear

all

close

all

t

=

datetime

2021

1

15

+

calweeks

0

20

);

x

=

0

pi

/

20

pi

];

y

(:,

1

=

sin

x

);

y

(:,

2

=

abs

cos

x

));

subplot

1

2

1

area

t

y

subplot

1

2

2

area

t

y

-

4

MATLAB畫圖技巧與例項(四):填充圖area函式

此時,

橫軸座標

就是日期了。關於時間用法可以參考幫助文件。

[2]

1.3 示例3

area函式預設線型是

實線

,可以採用 ‘LineStyle’ 命寧直接進行更改。

clc

%https://zhuanlan。zhihu。com/p/312069817

clear

all

close

all

x

=

0

0。01

pi

];

y

(:,

1

=

sin

x

);

y

(:,

2

=

abs

cos

x

));

subplot

1

2

1

area

x

y

-

0。5

xlim

([

0

pi

])

subplot

1

2

2

area

x

y

-

0。5

‘linestyle’

‘——’

xlim

([

0

pi

])

MATLAB畫圖技巧與例項(四):填充圖area函式

這裡第一個圖是預設,第二個圖更改為虛線。

1.4 示例四

進一步地,可以更改填充顏色,採用控制代碼命寧。

如下所示。

clc

%https://zhuanlan。zhihu。com/p/312069817

clear

all

close

all

x

=

0

0。01

pi

];

y

(:,

1

=

sin

x

);

y

(:,

2

=

abs

cos

x

));

subplot

1

2

1

h

=

area

x

y

-

0。5

‘linestyle’

‘none’

);

h

1

)。

FaceColor

=

0。3

0。8

0。8

];

h

2

)。

FaceColor

=

0。6

0。2

0。6

];

xlim

([

0

pi

])

subplot

1

2

2

h

=

area

x

y

-

0。5

‘linestyle’

‘none’

);

h

1

)。

FaceColor

=

1

1

1

];

h

2

)。

FaceColor

=

0。6

0。2

0。6

];

xlim

([

0

pi

])

MATLAB畫圖技巧與例項(四):填充圖area函式

左邊我們更改了填充區的顏色。但是科研中,有時候,我們只需要兩條線之間填充,第一條線與

基底無填充

,則使第一填充顏色為白色([1, 1, 1])即可。

2 應用示例

填充圖應用非常廣泛。

這裡給出一篇JFM(流體力學頂刊)的文章截圖

[3]

MATLAB畫圖技巧與例項(四):填充圖area函式

也是用MATLAB畫的。

持續更新,更多文章請見專欄和目錄

專欄:MATLAB科學繪圖

MATLAB畫圖技巧與例項:目錄

MATLAB畫圖技巧與例項(一):常用函式

參考

^https://ww2。mathworks。cn/help/matlab/ref/area。html

^https://ww2。mathworks。cn/help/matlab/matlab_prog/plot-dates-and-durations。html

^https://arxiv。org/abs/2007。06228