# Python matplotlib如何實現圖形繪制
Matplotlib是Python中最著名的數據可視化庫之一,廣泛應用于科學計算、工程分析和商業智能等領域。本文將詳細介紹如何使用matplotlib實現各類圖形繪制,涵蓋基礎配置、常用圖表類型及高級定制技巧。
---
## 一、環境準備與基礎配置
### 1. 安裝matplotlib
```python
pip install matplotlib
import matplotlib.pyplot as plt
# 創建數據
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
# 創建圖形
plt.figure(figsize=(8, 4)) # 設置畫布大小
# 繪制折線圖
plt.plot(x, y,
color='blue',
linestyle='--',
marker='o',
label='示例數據')
# 添加標題和標簽
plt.title("基礎折線圖示例")
plt.xlabel("X軸")
plt.ylabel("Y軸")
plt.legend()
# 顯示圖形
plt.show()
Figure
: 整個畫布對象Axes
: 包含坐標軸的實際繪圖區域Axis
: 坐標軸對象Artist
: 所有可見元素的基類plt.plot(x, y, linewidth=2, markersize=8)
plt.scatter(x, y,
c='red',
s=100, # 點大小
alpha=0.5, # 透明度
marker='^') # 標記形狀
categories = ['A', 'B', 'C']
values = [15, 25, 30]
plt.bar(categories, values,
color=['#FF9999', '#66B2FF', '#99FF99'],
edgecolor='black',
width=0.6)
sizes = [30, 25, 45]
labels = ['A', 'B', 'C']
plt.pie(sizes,
labels=labels,
autopct='%1.1f%%',
startangle=90,
explode=(0, 0.1, 0)) # 突出顯示
import numpy as np
data = np.random.randn(1000)
plt.hist(data,
bins=30,
density=True, # 顯示概率密度
alpha=0.7,
color='purple')
data = [np.random.normal(0, std, 100) for std in range(1, 4)]
plt.boxplot(data,
patch_artist=True,
vert=True,
labels=['A', 'B', 'C'])
fig, axs = plt.subplots(2, 2, figsize=(10, 8))
# 子圖1
axs[0,0].plot(x, y, 'r--')
axs[0,0].set_title('子圖1')
# 子圖2
axs[0,1].scatter(x, y)
axs[0,1].grid(True)
# 子圖3
axs[1,0].bar(categories, values)
# 子圖4
axs[1,1].hist(data, bins=20)
plt.annotate('峰值點',
xy=(3, 25),
xytext=(3.5, 20),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.style.use('ggplot') # 使用內置樣式
# 或自定義樣式
plt.rcParams.update({
'font.size': 12,
'axes.titlesize': 14,
'axes.labelsize': 12,
'xtick.labelsize': 10,
'ytick.labelsize': 10
})
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)
ax.scatter(x, y, z, c='r', marker='o')
ax.set_xlabel('X軸')
ax.set_ylabel('Y軸')
ax.set_zlabel('Z軸')
plt.show() # 交互式顯示
plt.savefig('output.png',
dpi=300,
bbox_inches='tight', # 去除白邊
format='png') # 支持PDF/SVG等格式
plt.rcParams['font.sans-serif'] = ['SimHei'] # Windows
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] # Mac
plt.figure(dpi=150) # 提高分辨率
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1))
Matplotlib提供了豐富的可視化功能,通過本文介紹的基礎繪圖方法和高級技巧,您可以創建出專業級的統計圖表。建議結合官方文檔(https://matplotlib.org/)進行更深入的探索,實際項目中可搭配Pandas、Seaborn等庫實現更高效的數據可視化。 “`
(注:實際字數約1450字,此處為精簡展示版,完整版包含更多示例代碼和詳細說明)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。