更新於 2024/12/24閱讀時間約 8 分鐘

[Python教學] Matplotlib:資料視覺化的基石

Matplotlib 是 Python 中最流行且功能強大的資料視覺化工具之一。它能夠生成各種靜態、動態及互動式的圖表,是資料分析與科學計算的重要組成部分。在本教學中,我們將詳細介紹 Matplotlib 的核心功能,並以範例逐步展示如何繪製基本與進階圖表。


1. 安裝與載入 Matplotlib

首先,確保安裝了 Matplotlib。如果尚未安裝,可以使用以下指令:

pip install matplotlib

載入 Matplotlib 的核心模組:

import matplotlib.pyplot as plt

2. 繪製第一個圖表

以下是一個簡單的線圖示例:

import matplotlib.pyplot as plt

# 資料
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 繪製圖表
plt.plot(x, y)
plt.title('線圖示例') # 標題
plt.xlabel('X 軸') # X 軸標籤
plt.ylabel('Y 軸') # Y 軸標籤
plt.show() # 顯示圖表

輸出為一個簡單的線性圖。


3. Matplotlib 的基礎功能

3.1 設定標題與標籤

可以使用 titlexlabelylabel 方法為圖表添加標題及軸標籤:

plt.title('這是標題')
plt.xlabel('X 軸標籤')
plt.ylabel('Y 軸標籤')

3.2 設定線條樣式

可以通過參數設置線條的樣式、顏色與粗細:

plt.plot(x, y, color='red', linestyle='--', linewidth=2)

常用參數:

  • color: 設置線條顏色(如 'blue', 'red' 或 HEX 值)。
  • linestyle: 設置線條樣式(如 '-', '--', ':')。
  • linewidth: 設置線條粗細。

4. 多條線的繪製

可以在同一個圖表中繪製多條線:

x = [1, 2, 3, 4, 5]
y1 = [1, 2, 3, 4, 5]
y2 = [2, 4, 6, 8, 10]

plt.plot(x, y1, label='y = x') # 第一條線
plt.plot(x, y2, label='y = 2x') # 第二條線
plt.legend() # 顯示圖例
plt.show()

輸出將顯示兩條線及圖例。


5. 繪製常用圖表

5.1 折線圖 (Line Plot)

plt.plot(x, y)
plt.title('折線圖')
plt.show()

5.2 柱狀圖 (Bar Plot)

categories = ['A', 'B', 'C', 'D']
values = [3, 7, 8, 5]

plt.bar(categories, values, color='blue')
plt.title('柱狀圖')
plt.show()

5.3 散點圖 (Scatter Plot)

x = [5, 7, 8, 7, 2, 17]
y = [99, 86, 87, 88, 100, 86]

plt.scatter(x, y, color='red')
plt.title('散點圖')
plt.show()

5.4 圓餅圖 (Pie Chart)

sizes = [30, 20, 45, 5]
labels = ['A', 'B', 'C', 'D']
colors = ['gold', 'lightblue', 'lightgreen', 'red']

plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
plt.title('圓餅圖')
plt.show()

6. 子圖 (Subplots)

Matplotlib 支援在同一畫布中繪製多個子圖:

# 創建子圖畫布 (2, 2)
fig, axs = plt.subplots(2, 2)

# 繪製不同的圖表
axs[0, 0].plot(x, y) # 第一張圖
axs[0, 1].bar(categories, values) # 第二張圖
axs[1, 0].scatter(x, y) # 第三張圖
axs[1, 1].pie(sizes, labels=labels, autopct='%1.1f%%') # 第四張圖

plt.tight_layout() # 自動調整間距
plt.show()

7. 使用 Matplotlib 的進階功能

7.1 設置網格 (Grid)

plt.plot(x, y)
plt.grid(True) # 顯示網格
plt.show()

7.2 設置刻度與範圍

plt.plot(x, y)
plt.xlim(0, 6) # 設置 X 軸範圍
plt.ylim(0, 12) # 設置 Y 軸範圍
plt.xticks([1, 2, 3, 4, 5]) # 自定義 X 軸刻度
plt.yticks([0, 2, 4, 6, 8, 10]) # 自定義 Y 軸刻度
plt.show()

8. 將圖表儲存為圖片

Matplotlib 支援將圖表保存為多種格式:

plt.plot(x, y)
plt.savefig('line_chart.png', dpi=300, format='png') # 儲存為 PNG
plt.show()

9. 與 Pandas 的結合

Matplotlib 能直接繪製 Pandas 的資料:

import pandas as pd

# 建立 DataFrame
data = {
'X': [1, 2, 3, 4, 5],
'Y': [2, 4, 6, 8, 10]
}
df = pd.DataFrame(data)

# 使用 DataFrame 繪圖
df.plot(x='X', y='Y', kind='line', title='Pandas 與 Matplotlib', legend=False)
plt.show()

10. 小結

Matplotlib 是 Python 資料視覺化的基礎工具,其功能全面,適合繪製靜態圖表。在資料分析與展示中,掌握 Matplotlib 的使用將極大提升你的表達能力。

以下是學習 Matplotlib 的建議:

  1. 熟悉核心功能,如繪製基本圖表及設置標題、標籤等。
  2. 掌握子圖繪製、多條線繪製與進階功能。
  3. 結合 Pandas 處理資料,提升視覺化效率。

通過多加練習與應用,將能夠輕鬆利用 Matplotlib 將數據可視化為清晰、直觀的圖表!

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.