Matplotlib - 座標軸格式化



什麼是座標軸格式化?

在 Matplotlib 中格式化座標軸涉及自定義繪圖座標軸的各個方面,例如刻度、標籤、比例、限制等。這種自定義增強了資料視覺化的可讀性和演示效果。

在 Matplotlib 中格式化座標軸使我們能夠根據資料的特徵和演示要求調整視覺化效果。嘗試各種格式化選項以建立清晰且資訊豐富的繪圖。

使用案例

以下是座標軸格式化的使用案例。

  • 增強可讀性 - 調整字型大小、顏色和標籤以獲得更好的視覺化效果。

  • 資料重點 - 設定限制和比例以關注特定資料範圍。

  • 美觀 - 使用標題、網格線和脊柱屬性自定義外觀。

  • 清晰度和上下文 - 對座標軸進行標記並新增標題以瞭解繪圖的內容。

座標軸格式化選項

我們有不同的座標軸格式化選項,讓我們詳細瞭解每一個。

刻度和刻度標籤

在 Matplotlib 中,刻度是座標軸上表示特定資料點的小標記,而刻度標籤是與這些刻度相對應的值。我們可以使用 Matplotlib 中的各種函式自定義它們的外觀。

要修改刻度和刻度標籤,我們可以使用諸如 plt.xticks() 和 plt.yticks() 之類的方法來設定它們的位置和標籤。plt.xticks() 和 plt.yticks() 分別允許我們設定 x 軸和 y 軸上刻度的位置和標籤。我們可以使用 plt.tick_params() 調整刻度的外觀,以更改大小、顏色、方向等方面。

刻度標籤的格式化可以透過 plt.gca().xaxis 或 plt.gca().yaxis 以及 set_major_formatter() 等方法來完成,以控制它們的顯示方式,例如科學計數法、小數位數、日期格式等。

此外,為了更精細的控制,我們可以使用 ax.get_xticks()、ax.get_yticks()、ax.get_xticklabels()、ax.get_yticklabels() 訪問特定的刻度和標籤,然後單獨修改它們。

示例

在本例中,我們使用 matplotlib 庫中上述討論的函式和方法設定繪圖的刻度和刻度標籤。

import matplotlib.pyplot as plt
import numpy as np

# Generating sample data
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Creating a plot
plt.figure(figsize=(8, 5))
plt.plot(x, y)

# Customizing ticks and tick labels
plt.xticks(np.arange(0, 11, 2))  # Set x-axis ticks at intervals of 2
plt.yticks(fontsize=10, color='red')  # Customize y-axis tick labels (font size and color)
plt.xlabel('X-axis', fontsize=12)
plt.ylabel('Y-axis', fontsize=12)
plt.title('Ticks and Tick Labels Formatting', fontsize=14)
plt.show()

輸出

執行上述程式碼後,我們將得到以下輸出 -

ticks_ticklabels

座標軸限制和比例

座標軸限制和比例是建立視覺化效果時的基本方面。它們控制沿繪圖或圖表座標軸顯示的資料的範圍和外觀。

座標軸限制

座標軸限制定義每個座標軸上顯示的值的跨度。透過設定限制,我們可以專注於特定範圍的資料,從而強調特定的細節或趨勢。例如,在散點圖中,如果我們設定座標軸限制,則可以放大某個感興趣的區域。

比例

比例決定了資料如何在座標軸上分佈和表示。常見的比例包括線性、對數和分類。線性比例表示沿座標軸均勻分佈的資料,而對數比例強調數量級的變化,分類比例用於非數值資料或類別。

以下是與座標軸限制和比例相關的關鍵注意事項和操作。

  • 設定限制 - 定義每個座標軸的最小值和最大值,以控制顯示資料的部分。

  • 放大/縮小 - 調整座標軸限制以關注特定資料範圍或縮小以顯示整體上下文。

  • 比例轉換 - 更改比例型別可以改變資料感知方式。例如,使用對數比例可以更好地視覺化指數增長或範圍廣泛的資料。

  • 歸一化 - 如果需要,對資料進行歸一化以將不同的比例帶入可比較的範圍內,尤其是在同一張圖上繪製多個數據集時。

  • 限制異常值 - 設定座標軸限制以排除異常值或異常值,從而更清晰地檢視主要資料分佈。
  • 比例自定義 - 一些視覺化庫允許自定義比例美學,例如不同比例的刻度放置和標記。

在 Python 庫(如 Matplotlib 或 Seaborn)中,提供用於操作座標軸限制和比例的功能,允許使用者詳細控制如何在繪圖中呈現資料。

示例

以下是用 Python 的 Matplotlib 庫演示設定座標軸限制和更改比例的示例。

import matplotlib.pyplot as plt
import numpy as np

# Generating data
x = np.linspace(0.1, 100, 500)
y = np.sin(x)

# Creating a figure and axes object
fig, axs = plt.subplots(1, 2, figsize=(12, 5))

# Plot with default linear scale
axs[0].plot(x, y)
axs[0].set_title('Linear Scale')

# Plot with logarithmic scale for the y-axis
axs[1].plot(x, y)
axs[1].set_yscale('log')  # Set logarithmic scale for the y-axis
axs[1].set_title('Logarithmic Scale (y-axis)')
plt.tight_layout()
plt.show()

輸出

執行上述程式碼後,我們將得到以下輸出 -

axislimits_scale

座標軸標籤和標題

座標軸標籤和標題是任何視覺化效果的關鍵組成部分,用於提供關於繪圖上表示資料的上下文和資訊。它們幫助讀者瞭解每個座標軸代表什麼以及視覺化的總體目的。

自定義座標軸標籤和標題涉及指定文字、調整字型大小、設定字型粗細、更改顏色以及將它們適當地放置在繪圖中,以確保清晰度和可讀性。

座標軸標籤

座標軸標籤描述沿每個座標軸顯示的資料的數量或性質。例如,在散點圖中,如果 y 軸是高度,x 軸是體重,則標籤可能是“高度(釐米)”“體重(公斤)”。它們清楚地說明了所繪製的值的含義。

標題

標題為整個繪圖提供了一個總體描述或上下文。它簡要解釋了視覺化的內容、它可能說明的關係或模式,或者可以從中得出什麼見解。

示例

以下是使用 Python 的 Matplotlib 庫建立帶有標記座標軸和標題的簡單繪圖的示例。

import matplotlib.pyplot as plt
import numpy as np

# Generating data
x = np.linspace(0, 10, 100)
y = np.cos(x)

# Creating the plot
plt.plot(x, y)

# Adding axis labels and title
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Cosine Wave Plot')
plt.show()

輸出

執行上述程式碼後,我們將得到以下輸出 -

axis_labels_title

網格線和脊柱

網格線和脊柱是視覺元件,透過提供參考點和描繪繪圖區域來幫助理解和解釋繪圖。

自定義網格線和脊柱允許透過增強其清晰度和視覺吸引力來更好地呈現和強調繪圖的某些方面。我們可以調整網格線和脊柱的外觀、可見性和屬性以適應視覺化的需求。

網格線

這些是跨越繪圖區域的水平和垂直線,在座標軸上的刻度處相交。它們有助於直觀地估計繪圖中的資料點和關係。網格線可以存在於一個或兩個座標軸上,並且可以在樣式、顏色和可見性方面進行自定義。

脊柱

脊柱是構成繪圖框邊界的線。它們連線座標軸刻度標記並定義資料區域的邊界。可以單獨自定義繪圖每一側的脊柱,例如頂部、底部、左側、右側,這允許更改它們的外觀、粗細和位置。

在 Matplotlib 中,我們可以使用各種方法和屬性控制網格線和脊柱。

示例

以下是使用 plt.grid() 和 plt.gca().spines 方法設定繪圖網格線和脊柱的示例。

import matplotlib.pyplot as plt

# Generating data
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# Creating a plot
plt.plot(x, y)

# Displaying grid lines
plt.grid(True)  # Show grid lines

# Customizing spines
plt.gca().spines['top'].set_linestyle('--')  # Customize top spine style
plt.gca().spines['right'].set_visible(False)  # Hide right spine
plt.show()

輸出

執行上述程式碼後,我們將得到以下輸出 -

grids_spines

座標軸脊柱是連線座標軸刻度標記的線,描繪繪圖區域的邊界。axes 物件在頂部、底部、左側和右側都有脊柱。

可以透過指定顏色和寬度來格式化每個脊柱。如果將任何邊的顏色設定為 none,則可以使其不可見。

示例

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.spines['bottom'].set_color('blue')
ax.spines['left'].set_color('red')
ax.spines['left'].set_linewidth(2)
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
ax.plot([1,2,3,4,5])
plt.show()

輸出

執行上述程式碼後,我們將得到以下輸出 -

Axis Spines

示例

這是一個使用 Python 的 Matplotlib 庫為 x 軸和 y 軸新增標籤的程式碼示例。

# importing matplotlib module
import matplotlib.pyplot as plt
import numpy as np

# x-axis & y-axis values
x = [1, 2, 3, 4, 5]
y = [10, 5, 15, 20, 25]

# create a figure and axes
fig, ax = plt.subplots()

# setting title to graph
ax.set_title('Tutorials Point')

# label x-axis and y-axis
ax.set_ylabel('y-AXIS')
ax.set_xlabel('x-AXIS')

# function to plot and show graph
ax.plot(x, y)
plt.show()

輸出

執行上述程式碼後,我們將得到以下輸出 -

XY labeling

示例

在 Python-matplotlib 中格式化座標軸 - x 軸和 y 軸的限制,在本例中分別為 (10,0) 和 (0,40)。座標軸的限制設定了圖表中需要覆蓋的最高繪圖範圍。預設情況下,會顯示給定點的 x 軸最大值和 y 軸最大值。

import matplotlib.pyplot as plt
import numpy as np

x = [1, 2, 3, 4, 5]
y = [10, 5, 15, 20, 25]

# create a figure and axes
fig, ax = plt.subplots()

ax.set_title('Tutorials Point')

ax.set_ylabel('y-AXIS')
ax.set_xlabel('x-AXIS')

# sets x, y-axis limits on the graph
ax.set_xlim(0, 10)
ax.set_ylim(0, 40)

# function to plot and show graph
ax.plot(x, y)
plt.show()

輸出

執行上述程式碼後,我們將得到以下輸出 -

XY limits
廣告