文章目錄
[ Matplotlib version: 3.2.1]
一、Matplotlib常用技巧
(一)導入
import matplotlib as mpl
import matplotlib.pyplot as plt
(二)設置繪圖樣式
使用plt.style
來選擇圖形的繪圖風格(如經典風格classic)
plt.style.use('classic')
(三)顯示圖形
1. 在腳本中畫圖
如果在一個腳本文件中使用Matplotlib,那麼顯示圖形的時候必須使用plt.show()
plt.show()
會啓動一個事件循環(event loop),並找到所有當前可用的圖形對象,打開一個或多個交互式窗口顯示圖形- 注意:一個Python會話(session)中只能使用一次
plt.show()
,因此通常都把它放在腳本的最後。多個plt.show()
命令會導致顯示異常。
2. 在IPython shell中畫圖
需要在啓動IPython後使用%matplotlib
魔法命令。
- 此後任何plt命令都會自動打開一個圖形窗口,增加新的命令,圖形就會更新。
- 有一些變化不會自動及時更新,可以使用
plt.draw()
強制更新。 - 在IPython shell中不需要使用
plt.show()
3. 在IPython Notebook中畫圖
IPython Notebook是一款基於瀏覽器的交互式數據分析工具,可以將描述性文字、代碼、圖形、HTML元素以及更多的媒體形式組成起來,集成到單個可執行的Notebook文檔中(如Jupyter Notebook)
用Jupyter Notebook也需要使用%matplotlib
魔法命令,可以將圖形直接嵌在頁面中,有兩種展現形式:
%matplotlib notebook
會在Notebook中啓動交互式圖形%matplotlib inline
會在Notebook中啓動靜態圖形
(文中統一使用)%matplotlib inline
運行命令之後(每一個Notebook核心任務/會話只需要運行一次),在每個Notebook的單元中創建圖形就會直接將PNG格式圖形文件嵌入在單元中
(四)將圖形保存爲文件
Matplotlib可以將圖形保存爲各種不同的數據格式。用savefig()
命令將圖形保存爲文件。
savefig()
中,保存的圖片文件格式就是文件的擴展名- 注意:保存圖形文件時,不需要使用
plt.show()
# 保存爲PNG格式
fig.savefig('my_figure.png')
確定文件中是否保存有我們需要的內容,可以用IPython的Image
對象來顯示文件內容:
from IPython.display import Image
Image('my_figure.png')
二、兩種畫圖接口
Matplotlib一個特性:它有兩種畫圖接口,一是便捷的MATLAB風格接口,另一個是功能更強大的面向對象接口。
(一)MATLAB風格接口
Matplotlib最初作爲MATLAB用戶的Python替代品,許多語法都與MATLAB類似。MATLAB風格的工具位於pyplot接口中。
這種接口最重要的特性是有狀態的(stateful):它會持續跟蹤“當前的”圖形和座標軸,所有plt命令都可以應用。
可以用plt.gcf()
(獲取當前圖形)和plt.gca()
(獲取當前座標軸)來查看具體信息。
plt.figure() # 創建圖形
# 創建兩個子圖中的第一個,設置座標軸
plt.subplot(2, 1, 1) # (行、列、子圖編號)
plt.plot(x, np.sin(x))
# 創建兩個子圖中的第二個,設置座標軸
plt.subplot(2, 1, 2)
plt.plot(x, np.cos(x))
(二)面向對象接口
面向對象接口可以適應更復雜的場景,更好地控制圖形。在面向對象接口中,畫圖函數不再受到當前“活動”圖形或座標軸的限制,而變成了顯示的Figure
和Axes
的方法。
# 先創建圖形網絡
# ax是一個包含兩個Axes對象的數組
fig, ax = plt.subplots(2)
# 在每個對象上調用plot()方法
ax[0].plot(x, np.sin(x))
ax[1].plot(x, np.cos(x))
總結自《Python數據科學手冊》