目錄
前言
Matplotlib 簡介
快速入門
圖形結構解剖
常用繪圖函數
子圖與布局
單行多列子圖:
網格布局:
自定義位置:
樣式與標注
中文字體與科學計數
圖例、網格、坐標軸
動態圖與動畫
三維繪圖
常見問題與技巧
前言
Matplotlib 是 Python最基礎也是最強大的繪圖庫之一,它是科學計算、數據可視化和工程模擬中最常見的可視化工具。本教程將系統性地介紹 Matplotlib 的用法,從基礎的繪圖函數,到子圖、樣式、動畫、3D 繪圖等高級用法,適合所有希望精通 Python 繪圖的人。
Matplotlib 簡介
Matplotlib 是一個 Python 2D 繪圖庫,可以生成出版質量級別的圖形。
- ?它可以與 NumPy、Pandas、SciPy 配合使用
- ?默認畫布是靜態圖(與 MATLAB 類似)
- ?支持動態圖(matplotlib.animation)
??
安裝方式:
pip install matplotlib
導入:
import matplotlib.pyplot as plt
快速入門
繪制正選函數,如下所示。
import numpy as np
import matplotlib.pyplot as pltx = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)plt.plot(x, y)
plt.title('正弦函數')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(True)
plt.show()
圖形結構解剖
Matplotlib 繪圖的底層邏輯分為三個核心對象:
你可以使用面向對象方式明確控制:
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('對象式繪圖')
常用繪圖函數
- plot()?折線圖(默認)
- scatter()?散點圖
- bar()?柱狀圖
- hist()?直方圖??
- boxplot()?箱型圖?
- fill_between()?區域圖
- imshow()?圖像顯示(灰度圖)
- contour()?等高線
??
子圖與布局
單行多列子圖:
fig, axs = plt.subplots(1, 3, figsize=(12, 4))
網格布局:
fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[1, 1].bar([1,2,3], [3,4,5])
自定義位置:
from matplotlib.gridspec import GridSpec
樣式與標注
?線型:'-', '--', ':'
??
?顏色:'r', 'g', '#3366cc'
??
?標記:'o', '^', 's'
??
plt.plot(x, y, linestyle='--', color='red', marker='o')
中文字體與科學計數
中文顯示:
plt.rcParams['font.family'] = 'SimHei' ?# 或 'Microsoft YaHei'
科學計數法:
ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))
圖例、網格、坐標軸
plt.legend(loc='best')
plt.grid(True)
plt.xlim(0, 10)
plt.ylim(-1, 1)
動態圖與動畫
使用 `FuncAnimation`:
from matplotlib.animation import FuncAnimation
適用于波動、物理模擬、實時數據更新等場景。
三維繪圖
使用 `mpl_toolkits.mplot3d`:
from mpl_toolkits.mplot3d import Axes3D
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)
常見問題與技巧
- 圖像太小?試試 figsize=(12,6)
??
- 中文亂碼?加上 plt.rcParams['font.family']
??
- 動畫失效?確認調用 plt.show()?或保存 ani.save()
??