[Python3] Matplotlib —— (一) 入門基礎


[ 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))

在這裏插入圖片描述

(二)面向對象接口

面向對象接口可以適應更復雜的場景,更好地控制圖形。在面向對象接口中,畫圖函數不再受到當前“活動”圖形或座標軸的限制,而變成了顯示的FigureAxes的方法。

# 先創建圖形網絡
# ax是一個包含兩個Axes對象的數組
fig, ax = plt.subplots(2)

# 在每個對象上調用plot()方法
ax[0].plot(x, np.sin(x))
ax[1].plot(x, np.cos(x))

總結自《Python數據科學手冊》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章