在jupyter notebook中使用matplotlib繪圖的注意事項

在使用jupyter notebook時經常會用到matplotlib庫,來實現交互式繪圖,能夠支持數據查看,數據位置確定,圖像移動等功能

%matplotlib notebook(推薦)

在開頭加上如下代碼可以在jupyter notebook行內形成交互式的圖表

%matplotlib notebook

在這裏插入圖片描述

%matplotlib

在開頭加上如下代碼可以在mac內形成交互式的圖表,即會彈出圖像窗口

%matplotlib

%matplotlib inline

開頭加上如下代碼可以顯示圖像,但無交互功能

%matplotlib inline

如果開頭不加上面所說的代碼,運行後也會形成一張乾巴巴的圖片,無法實現交互式功能

一個細節:在每個單元格運行後,圖表被重置

使用jupyter notebook時有個細節需要注意,在每個單元格運行後,圖表被重置,因此對於複雜的圖標,你必須將所有的繪圖命名放在單個的notebook單元格內(%matplotlib notebookimport matplotlib.pyplot as plt只要在最開頭加一句就夠了)

在這裏插入圖片描述
在這裏插入圖片描述

注意:如果要把jupyter notebook導出成markdown格式,那麼你要把開頭那句話改成%matplotlib inline,這樣纔會導出生成的圖片(會自動放在同一個文件夾中)
在這裏插入圖片描述


VScode中用plt.show()

在VScode中使用%matplotlib會報錯,正確做法是用plt.show()
在這裏插入圖片描述
plt.show() 保持圖像打開,關閉圖像纔會繼續往下運行代碼
在這裏插入圖片描述

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 2*np.pi, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure(1)
plt.plot(x, y1)
plt.pause(2)  # 在figure(1)上繪製sin曲線,2s後自動關閉窗口

plt.figure(2)
plt.plot(x, y2)
plt.pause(2)  # 在figure(2)上繪製cos曲線,2s後自動關閉窗口

plt.pause(0)  # 重新繪製figure(1)和figure(2),不會自動關閉
print(2)

參考資料:
matplotlib繪圖的兩種模式“block”和“interactive”

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