MATLAB - 圖表格式化



為了使您的圖表更具表現力,展現更多資訊或使資料更容易理解,您可以執行以下操作:新增標題和標籤,更改圖表的座標軸範圍,並新增輔助線以幫助閱讀圖表。您還可以將不同的資料組放在同一張圖中,方法是將所有資料顯示在同一條線上,或在一張圖中使用多條線。

圖表的格式化可以透過以下方法實現:

  • 標籤和註釋
  • 座標軸外觀
  • 顏色圖

標籤和註釋

這有助於在圖表頂部新增標題,命名線條或在圖表上添加註釋以突出顯示重要資訊。您可以製作一個圖例來命名圖表上的不同部分,或者在圖表上的資料點附近新增文字。此外,您還可以繪製諸如框、圓圈、箭頭或線條之類的形狀來指示圖表的特定部分。

要處理標籤和註釋,您可以使用以下幾種方法:

標籤方法

序號 方法和描述
1

title

title(titletext) : 新增標題

2

subtitle

subtitle(txt) : 向圖表新增副標題

3

sgtitle

sgtitle(txt) : 向圖表網格新增標題

4

xlabel

xlabel(txt) : 向 x 軸新增標籤

5

ylabel

ylabel(txt) : 向 y 軸新增標籤

6

zlabel

zlabel(txt) : 向 z 軸新增標籤

7

fontname

fontname(fname) : 設定標籤使用的字型名稱。

8

fontsize

fontsize(size,units) : 設定字型大小

9

legend

legend() : 圖例建立一個鍵,其中包含圖表上每一組資料的清晰名稱。

註釋方法

序號 方法和描述
1

text

text(x,y,txt) : text 函式在圖表的一個或多個點上放置文字。如果您只在一個點上新增文字,請對 x 和 y 使用單個數字。如果您要在多個點上新增文字,請使用具有相同專案數的 x 和 y 列表。

2

xline

xline(x) : x 值恆定的垂直線。

3

yline

yline(y) : y 值恆定的水平線。

4

xregion

xregion(x1,x2) : x 座標之間的 1-D 填充區域

5

yregion

yregion(y1,y2): y 座標之間的 1-D 填充區域

6

annotation

annotation(lineType,x,y) : annotation 函式建立一個連線圖表上兩點的線或箭頭。選擇您想要的線型別,例如 'line'、'arrow'、'doublearrow' 或 'textarrow'。使用 [x_begin x_end] 和 [y_begin y_end] 對來指定線或箭頭在圖表上的起始和結束位置。

標籤示例

讓我們看幾個關於如何在 Matlab 中使用上述方法格式化圖表的示例。

示例 1

讓我們向二維圖新增標題和副標題

plot([0 5],[1 5])
title('Straight Line')
subtitle('Slope = 5, y-Intercept = 1')

在 Matlab 命令視窗中執行相同的操作,輸出為:

straight line slope

示例 2

除了標題,還會新增 x 軸標籤和 y 軸標籤,如下所示

plot([0 5],[1 5])
title('Straight Line')
subtitle('Slope = 5, y-Intercept = 1')
xlabel('X scale')
ylabel('Y scale')

在 Matlab 命令視窗中執行後,輸出為:

straightline x scale

示例 3

在這個例子中,我們將新增圖例,並更改圖例、標題和標籤的字型名稱和大小。

plot([0 1; 1 2])
title('Straight Line')
subtitle('Slope = 5, y-Intercept = 1')
xlabel('X scale')
ylabel('Y scale')
legend("Blue Line","Red Line")
fontname("Comic Sans MS")
fontsize(16,"points")
straightline y scale

註釋示例

讓我們看幾個關於如何在 Matlab 中使用上述方法格式化圖表的示例。

示例 1

在二維線圖上使用 text()。

plot(1:20)
str = {'Line plot','from 1 to 20'};
text(2,7,str)

在 Matlab 命令視窗中執行相同的操作,輸出為:

line plot 2d graph

示例 2

使用 xline() 和 yline()

plot(1:20)
xline(3);
yline(2);

在 Matlab 命令視窗中執行程式碼後,輸出為:

xline yline

示例 3

x = -10:0.25:10;
y = x.^4;
plot(x,y)
xregion(-2,3)

在 Matlab 命令視窗中執行相同的操作,輸出為:

xregion yregion

現在我們將使用 yregion,如下所示:

x = -10:0.25:10;
y = x.^4;
plot(x,y)
yregion(1000,3000)

執行後,輸出為:

yregion

現在我們將使用 yregion,如下所示:

x = -10:0.25:10;
y = x.^4;
plot(x,y)
yregion(1000,3000)

執行後,輸出為:

xregion

示例 4

在這個例子中,讓我們新增一個文字箭頭註釋,文字為 'y = x',從點 (0.3, 0.6) 開始,到點 (0.5, 0.5) 結束。

plot(1:10)
x = [0.3 0.5];
y = [0.6 0.5];
annotation('textarrow',x,y,'String','y = x ')

annotation('textarrow', x, y, 'String', 'y = x'): 這行程式碼在圖表上建立一個文字箭頭註釋。它指定註釋應該是一個文字箭頭,使用前面提供的 x 和 y 座標。與箭頭關聯的文字為 'y = x'。

textarrow

座標軸外觀

您可以透過延長或縮短座標軸、更改標籤或新增輔助線來更改圖表座標軸上線條和數字的外觀。您還可以將不同的圖表疊加在一起或並排放置,甚至可以在一側使用兩組數字。

以下是一些可以幫助格式化座標軸外觀的方法。

序號 方法和描述
1

xlim()

xlim(limits) : 控制當前圖表或圖形中 x 軸的範圍。

2

ylim()

ylim(limits) : 控制當前圖表或圖形中 y 軸的範圍。

3

xscale()

xscale(scale) : 更改當前圖表中 x 軸的顯示方式——可以是直線或對數方式。

4 yscale()

yscale(scale) : 更改當前圖表中 y 軸的顯示方式——可以是直線或對數方式。

5

box on

使用“box on”可以顯示當前圖表的輪廓,方法是啟用其 Box 功能。對於 GeographicAxes 物件,這是預設設定。

6

xticks()

xticks(ticks): 將刻度線放置在您選擇的 x 軸上的特定位置。使用遞增數字列表,例如 [0 2 4 6],來指定您想要放置刻度線的位置。這適用於當前圖表。

7

yticks()

yticks(ticks):在您選擇的特定位置放置 y 軸上的刻度標記。使用遞增數字列表,例如 [0 2 4 6],來顯示您想要這些標記的位置。這適用於當前圖形。

8

xticklabels()

xticklabels(labels):為當前圖形中 x 軸上的刻度標記分配新的標籤。您可以使用一組單詞,例如 {'January','February','March'} 來替換預設標籤。請記住,一旦您設定了這些標籤,對圖形的任何更改都不會自動更新它們。

9

yticklabels()

yticklabels(labels):為當前圖形中 y 軸上的刻度標記分配新的標籤。您可以使用一組單詞,例如 {'January','February','March'} 來替換預設標籤。請記住,一旦您設定了這些標籤,對圖形的任何更改都不會自動更新它們。

讓我們看幾個例子,演示上述方法的工作原理。

示例 1:使用 xlim() 和 ylim()

在下面的示例中,我們有以下程式碼:

x = linspace(0,20);
y = sin(x);
plot(x,y)
xlim([0 15])

x 軸指定了從 0 到 20 的 linspace。使用 xlim() 將把 x 軸限制在 0 到 15 之間。

在 Matlab 命令視窗中執行程式碼後,輸出為:

xlim

現在讓我們看看如何使用 ylim() 來限制繪圖時的 y 軸。

我們的程式碼如下:

x = linspace(0,20);
y = sin(x);
plot(x,y)
ylim([-5 5])

我們使用與示例中相同的程式碼來顯示 x 軸的限制,但這裡不是限制 x 軸,而是如上所示限制 y 軸。

當您在 MATLAB 命令視窗中執行程式碼時,輸出如下:

ylim

示例 2:使用 xscale() 和 yscale()

讓我們首先了解如何使用 xscale() 方法,然後是如何使用 yscale() 方法。

以下程式碼顯示瞭如何使用 xscale():

x = linspace(0.1, 100, 100);
y = log(x);
plot(x, y);
xscale('log');

在這個示例中,第一個繪圖使用線性 x 軸比例尺,第二個繪圖使用對數 x 軸比例尺。xscale('log') 函式用於將 x 軸比例尺設定為對數。

在 Matlab 命令視窗中執行相同的操作,輸出為:

x-axis scale

現在讓我們瞭解如何使用 yscale() 方法。我們的程式碼如下:

x = linspace(0.1, 100, 100);
y = log(x);
plot(x, y);
yscale('log');

在這個示例中,yscale('log') 語句將 y 軸比例尺設定為對數。

在 MATLAB 命令視窗中執行程式碼後,輸出為:

y axis scale

示例 3:使用 box on

以下程式碼顯示瞭如何使用 box on,以便您獲得圍繞 3D 繪圖的框的顯示。

t = linspace(0, 4*pi, 100);
x = cos(t);
y = sin(t);
z = t;
plot3(x, y, z, 'LineWidth', 2);
box on;

在 Matlab 命令視窗中執行相同的操作,輸出為:

box on

示例 4:使用 xticks() 和 yticks()

讓我們首先了解如何使用 xticks() 方法。其程式碼如下所示:

x = linspace(0, 10, 100);
y = sin(x);
plot(x, y);
xticks([2 4 6 8]);

在這個示例中,xticks([2 4 6 8]) 命令將 x 軸刻度值設定為 2、4、6 和 8。您可以將向量 [2 4 6 8] 修改為任何與您希望在 x 軸上顯示刻度標記的位置匹配的遞增值。執行此程式碼後,您將看到一個繪圖,其刻度標記專門位於 x 軸上的 2、4、6 和 8 值處。

在 Matlab 命令視窗中執行相同的操作,輸出為:

xticks

現在讓我們看看 yticks() 的示例,如下所示:

x = linspace(0, 10, 100);
y = sin(x);
plot(x, y);
yticks([-0.5 0 0.5 1]);

在這個示例中,yticks([-1 -0.5 0 0.5 1]) 命令將 y 軸刻度值設定為 -1、-0.5、0、0.5 和 1。您可以將向量 [-1 -0.5 0 0.5 1] 修改為任何與您希望在 y 軸上顯示刻度標記的位置匹配的遞增或遞減值。執行此程式碼後,您將看到一個繪圖,其刻度標記專門位於 y 軸上的 -1、-0.5、0、0.5 和 1 值處。

在 MATLAB 命令視窗中執行程式碼後的輸出為:

yticks

示例 5:使用 xticklabels() 和 yticklabels()

讓我們看看如何使用 xticklabels() 的示例。其程式碼如下:

x = 1:5;
y = [4 7 1 9 5];
plot(x, y, 'o-');
xticklabels({'A', 'B', 'C', 'D', 'E'});

在這個示例中,xticklabels({'A', 'B', 'C', 'D', 'E'}) 命令將 x 軸刻度標籤設定為 'A'、'B'、'C'、'D' 和 'E'。向量 x 表示沿 x 軸的刻度值,xticklabels 函式允許您為這些刻度分配自定義標籤。

在 Matlab 命令視窗中執行相同的操作,輸出為:

xticklabels

現在讓我們瞭解如何使用 yticklabels(),如下面的程式碼所示:

x = 1:5;
y = [4 7 1 9 5];
plot(x, y, 'o-');
yticklabels({'One', 'Two', 'Three', 'Four', 'Five'});

在這個示例中,yticklabels({'One', 'Two', 'Three', 'Four', 'Five'}) 命令將 y 軸刻度標籤設定為 'One'、'Two'、'Three'、'Four' 和 'Five'。向量 y 表示沿 y 軸的刻度值,yticklabels 函式允許您為這些刻度分配自定義標籤。

yticklabels

顏色圖

顏色圖就像在不同的圖片或圖形中使用的顏色集合。顏色條顯示顏色集中的顏色如何與您的資訊匹配。顏色圖由帶有三個表示顏色的數字的行組成。顏色與您的資料之間的連線會根據您製作的圖片或圖形的型別而變化。

以下是一些可以幫助處理顏色的方法。

序號 方法和描述
1

colormap()

colormap(map) 將當前圖形的顏色方案調整為由指定顏色圖“map”定義的顏色方案。

2

colorbar()

colorbar(location) 在指定位置(例如 'northoutside')顯示顏色條。

示例 1:使用 colormap()

mesh(peaks)
colormap('cool')

mesh(peaks) − 此命令使用“peaks”函式生成 3D 表面圖。“peaks”函式通常用於測試和演示各種 MATLAB 繪圖功能。

colormap('cool') − 建立網格圖後,colormap 函式用於設定圖的顏色方案。具體來說,它將顏色圖設定為“cool”。'cool' 顏色圖是 MATLAB 內建的顏色圖,它從深藍色平滑過渡到淺青色,從而建立了資料的視覺上吸引人的表示。

在 Matlab 命令視窗中執行後,輸出為:

colormap

示例 2:使用 colorbar()

mesh(peaks)
colormap('cool')
colorbar('southoutside')

在上面的示例中,colorbar 函式向繪圖添加了一個顏色條。引數 'southoutside' 指定顏色條位於繪圖底部的外部。此顏色條提供瞭解釋繪圖中顏色的參考,指示顏色與資料值之間的對應關係。

執行後的輸出如下:

colorbar
廣告