matplotlib.pyplot
繪圖接口
1. 用法
導入模塊
import matplotlib.pyplot as plt
import numpy as np # 用于生成示例數據
繪制簡單圖表
# 生成數據
x = np.linspace(0, 10, 100)
y = np.sin(x)# 創建圖形和坐標軸
plt.figure(figsize=(8, 4)) # 設置圖表大小
plt.plot(x, y, label='sin(x)') # 繪制曲線
plt.title('正弦函數') # 添加標題
plt.xlabel('X軸') # 添加x軸標簽
plt.ylabel('Y軸') # 添加y軸標簽
plt.legend() # 顯示圖例
plt.grid(True) # 顯示網格線
plt.show() # 顯示圖表
2. 類型
折線圖
plt.plot(x, y, color='blue', linewidth=2, linestyle='-', marker='o')
散點圖
x = np.random.rand(50)
y = np.random.rand(50)
plt.scatter(x, y, s=50, c='red', alpha=0.6)
柱狀圖
categories = ['A', 'B', 'C', 'D']
values = [25, 40, 30, 15]
plt.bar(categories, values, color='skyblue')
直方圖
data = np.random.normal(0, 1, 1000)
plt.hist(data, bins=30, alpha=0.7, color='purple')
餅圖
sizes = [30, 25, 20, 15, 10]
labels = ['A', 'B', 'C', 'D', 'E']
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
3. 多圖布局
使用subplot
或subplots
在同一窗口顯示多個圖表:
fig, axes = plt.subplots(2, 2, figsize=(10, 8)) # 創建2x2網格# 繪制四個不同的圖表
axes[0, 0].plot(x, np.sin(x))
axes[0, 1].scatter(x, np.random.rand(len(x)))
axes[1, 0].bar(categories, values)
axes[1, 1].hist(data, bins=30)plt.tight_layout() # 自動調整布局
plt.show()
4. 樣式
- 顏色:使用名稱(如
'red'
)、十六進制碼(如'#FF5733'
)或RGB值。 - 線條樣式:
linestyle='--'
(虛線)、marker='x'
(標記點)。 - 字體設置:
plt.rcParams['font.size'] = 12 # 全局字體大小 plt.title('標題', fontweight='bold')
保存圖表
plt.savefig('my_plot.png', dpi=300, bbox_inches='tight')
以下是Matplotlib中常用的線條樣式(linestyle
參數)和標記樣式(marker
參數)的表格總結,方便你快速查閱:
樣式表格(當然也建議訪問官方文檔)
1. 線條樣式(linestyle)
代碼 | 描述 | 示例效果 |
---|---|---|
'-' | 實線 | ───────── |
'--' | 虛線 | ---------- |
'-.' | 點劃線 | -.-.-.-.- |
':' | 點線 | ::::::::: |
'' | 無線條(僅標記) |
2. 標記樣式(marker)
代碼 | 描述 | 示例效果 |
---|---|---|
'.' | 小點 | ● |
'o' | 圓圈 | ? |
's' | 正方形 | □ |
'^' | 上三角形 | △ |
'v' | 下三角形 | ▽ |
'*' | 星形 | ? |
'x' | 叉號 | ? |
'+' | 加號 | + |
'D' | 菱形 | ◇ |
3. 使用示例
import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 10, 10)plt.figure(figsize=(10, 6))# 實線 + 圓圈標記
plt.plot(x, x, '-o', label='實線+圓圈')# 虛線 + 方形標記
plt.plot(x, x+1, '--s', label='虛線+方形')# 點劃線 + 三角形標記
plt.plot(x, x+2, '-.^', label='點劃線+三角形')# 點線 + 星形標記
plt.plot(x, x+3, ':*', label='點線+星形')plt.legend()
plt.show()
4. 線條屬性補充
- 線寬:
linewidth
或lw
參數(如lw=2
) - 顏色:
color
參數(如color='red'
或簡寫c='r'
) - 透明度:
alpha
參數(0-1之間,如alpha=0.5
)