人工智能之數據分析 Matplotlib
第二章 Pyplot
(文章目錄)
前言
pyplot 是 Matplotlib 庫中最常用、最便捷的模塊,提供了類似 MATLAB 的命令式繪圖接口,非常適合快速繪製各種圖表。它通過一系列函數自動管理圖形(Figure)、座標軸(Axes)等底層對象,讓初學者也能輕鬆上手。
一、導入方式
通常使用以下方式導入:
import matplotlib.pyplot as plt
這是官方推薦的標準寫法。
二、基本用法示例
1. 繪製簡單折線圖
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 2, 3]
plt.plot(x, y) # 繪製折線圖
plt.title("Simple Line Plot")
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.show()
2. 多條曲線 & 圖例
plt.plot([1, 2, 3], [1, 4, 9], label='x²')
plt.plot([1, 2, 3], [1, 2, 3], label='x')
plt.legend() # 顯示圖例
plt.show()
3. 散點圖(scatter)
plt.scatter([1, 2, 3, 4], [10, 20, 25, 30], color='red')
plt.title("Scatter Plot")
plt.show()
4. 柱狀圖(bar)
categories = ['A', 'B', 'C']
values = [3, 7, 5]
plt.bar(categories, values)
plt.title("Bar Chart")
plt.show()
三、常用 pyplot 函數
| 函數 | 作用 |
|---|---|
plt.plot() |
繪製折線圖或點線圖 |
plt.scatter() |
繪製散點圖 |
plt.bar()/plt.barh() |
垂直/水平柱狀圖 |
plt.hist() |
直方圖 |
plt.pie() |
餅圖 |
plt.title() |
設置圖表標題 |
plt.xlabel()/plt.ylabel() |
設置座標軸標籤 |
plt.xlim()/plt.ylim() |
設置座標軸範圍 |
plt.legend() |
顯示圖例 |
plt.grid() |
顯示網格 |
plt.savefig('file.png') |
保存圖像到文件 |
plt.show() |
顯示圖形(在腳本中必需,在 Jupyter 中可省略) |
四、在 Jupyter Notebook 中使用
在 Jupyter 中,建議加上魔術命令以實現內聯顯示:
%matplotlib inline
import matplotlib.pyplot as plt
這樣圖表會直接嵌入在 notebook 單元格下方,無需彈出新窗口。
如果想交互式操作(如縮放、平移),可使用:
%matplotlib widget # 需安裝 ipympl: pip install ipympl
五、pyplot 與面向對象 API 的關係
雖然 pyplot 使用方便,但其背後仍是基於 Figure 和 Axes 對象 的面向對象結構。例如:
# 面向對象寫法(更靈活)
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 4, 2])
ax.set_title("OO Style")
plt.show()
對於複雜圖表(如多子圖、精細控制),推薦使用面向對象方式;對於快速探索性繪圖,pyplot 足夠高效。
六、小貼士
- 所有
plt.xxx()函數都會作用於“當前”座標軸(current axes)。 - 每次調用
plt.figure()或plt.subplot()會創建新的圖形或子圖。 - 使用
plt.clf()清空當前圖形,plt.close()關閉圖形窗口。
後續
本文主要介紹了Matplotlib的常見庫Pyplot的基本操作。之前的python過渡項目部分代碼已經上傳至gitee,後續會逐步更新。
資料關注
公眾號:咚咚王 gitee:https://gitee.com/wy18585051844/ai_learning
《Python編程:從入門到實踐》 《利用Python進行數據分析》 《算法導論中文第三版》 《概率論與數理統計(第四版) (盛驟) 》 《程序員的數學》 《線性代數應該這樣學第3版》 《微積分和數學分析引論》 《(西瓜書)周志華-機器學習》 《TensorFlow機器學習實戰指南》 《Sklearn與TensorFlow機器學習實用指南》 《模式識別(第四版)》 《深度學習 deep learning》伊恩·古德費洛著 花書 《Python深度學習第二版(中文版)【純文本】 (登封大數據 (Francois Choliet)) (Z-Library)》 《深入淺出神經網絡與深度學習+(邁克爾·尼爾森(Michael+Nielsen)》 《自然語言處理綜論 第2版》 《Natural-Language-Processing-with-PyTorch》 《計算機視覺-算法與應用(中文版)》 《Learning OpenCV 4》 《AIGC:智能創作時代》杜雨+&+張孜銘 《AIGC原理與實踐:零基礎學大語言模型、擴散模型和多模態模型》 《從零構建大語言模型(中文版)》 《實戰AI大模型》 《AI 3.0》