Matplotlib 是 Python 中最常用的繪圖庫之一,專門用於創建靜態、動態和交互式的視覺化圖表。無論是簡單的線圖、條形圖還是複雜的三維圖形,Matplotlib 都能提供強大的支持。它與 NumPy 和 Pandas 等庫配合使用,能夠輕鬆處理大規模數據並進行可視化。
這裡是 Matplotlib 入門教學,幫助你快速上手並開始進行數據可視化。
?? 一、安裝 Matplotlib
在開始之前,你需要安裝 Matplotlib。你可以通過 pip 安裝:
pip install matplotlib
如果你使用 Anaconda,可以使用以下命令安裝:
conda install matplotlib
安裝完成後,你就可以在 Python 程序中導入 Matplotlib 並開始繪圖。
? 二、Matplotlib 基本使用
1️⃣ 導入 Matplotlib
在 Python 中,我們通常導入 matplotlib.pyplot 模塊來進行繪圖:
import matplotlib.pyplot as plt
2️⃣ 基本的折線圖(Line Plot)
最簡單的圖形是折線圖,它用來顯示隨時間變化的數據或其他數據關係。
import matplotlib.pyplot as plt
# 定義數據
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 繪製折線圖
plt.plot(x, y)
# 添加標題和標籤
plt.title("Simple Line Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
# 顯示圖形
plt.show()
這段代碼將生成一個簡單的折線圖,顯示 x 和 y 數據之間的關係。
3️⃣ 繪製散點圖(Scatter Plot)
散點圖是另一種常見的圖表,用於顯示兩組數據之間的關聯。
# 散點圖
plt.scatter(x, y)
# 添加標題和標籤
plt.title("Simple Scatter Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
# 顯示圖形
plt.show()
4️⃣ 繪製條形圖(Bar Plot)
條形圖通常用於顯示類別數據或比較數值。
# 條形圖
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 2, 5]
plt.bar(categories, values)
# 添加標題和標籤
plt.title("Simple Bar Plot")
plt.xlabel("Category")
plt.ylabel("Value")
# 顯示圖形
plt.show()
5️⃣ 繪製直方圖(Histogram)
直方圖用於顯示數據的分佈情況,通常用於統計學中的數據分佈分析。
import numpy as np
# 生成隨機數據
data = np.random.randn(1000)
# 繪製直方圖
plt.hist(data, bins=30, edgecolor='black')
# 添加標題和標籤
plt.title("Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
# 顯示圖形
plt.show()
6️⃣ 繪製餅圖(Pie Chart)
餅圖用於顯示各部分在總體中所佔的比例。
labels = ['Python', 'C', 'Java', 'JavaScript']
sizes = [50, 30, 15, 5]
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
# 添加標題
plt.title("Programming Language Usage")
# 顯示圖形
plt.show()
? 三、Matplotlib 進階操作
1️⃣ 設置圖形樣式
你可以使用 plt.style.use() 設置不同的圖形樣式。例如,Matplotlib 提供了內建的樣式,如 ggplot 和 seaborn,可以快速改變圖形外觀。
plt.style.use('ggplot')
# 繪製一個簡單的折線圖
plt.plot(x, y)
# 顯示圖形
plt.show()
2️⃣ 多個子圖(Subplots)
Matplotlib 允許在一個圖形中顯示多個子圖。這對於比較不同數據集或多個視覺化非常有用。
# 創建 1 行 2 列的子圖
fig, (ax1, ax2) = plt.subplots(1, 2)
# 繪製第一個子圖
ax1.plot(x, y)
ax1.set_title("Line Plot")
# 繪製第二個子圖
ax2.scatter(x, y)
ax2.set_title("Scatter Plot")
# 顯示圖形
plt.show()
3️⃣ 自定義顏色、標籤和標題
你可以通過指定顏色、標籤、線型等來自定義圖形的外觀。
# 自定義顏色、線型和標籤
plt.plot(x, y, color='green', linestyle='--', label='Data')
# 顯示圖例
plt.legend()
# 添加標題和標籤
plt.title("Customized Line Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
# 顯示圖形
plt.show()
4️⃣ 保存圖形
如果你想將圖形保存為文件,可以使用 savefig() 方法。
# 保存圖形為 PNG 文件
plt.plot(x, y)
plt.title("Simple Line Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.savefig("line_plot.png") # 保存為文件
plt.show()
5️⃣ 3D 繪圖
Matplotlib 還支持三維繪圖。你可以使用 Axes3D 來創建三維圖形。
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
# 生成數據
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# 創建 3D 圖形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cmap='viridis')
# 顯示圖形
plt.show()
? 四、學習資源
- Matplotlib 官方文檔:https://matplotlib.org/stable/contents.html
- Matplotlib 教程:https://matplotlib.org/stable/tutorials.html
- Python Data Science Handbook:這本書由 Jake VanderPlas 撰寫,涵蓋了 NumPy、Matplotlib、Pandas 等資料科學工具,非常適合深入學習。