抱歉,您的瀏覽器無法訪問本站
本頁面需要瀏覽器支持(啟用)JavaScript
了解詳情 >

最近在使用 Jupyter Notebook 時遇到了一個奇怪的問題:更新 jupytergetdist 後,matplotlibplt 繪圖突然無法顯示。經過排查,發現是 Matplotlib 後端配置被 getdist 覆蓋 導致的相容性問題。

環境配置

  • GetDist:1.6.1
  • Matplotlib:3.3.4
  • Jupyter Notebook:1.0.0

問題復現

1
2
3
4
5
6
7
8
9
10
11
12
13
%load_ext autoreload
%autoreload 2
%matplotlib inline
%config InlineBackend.figure_format = 'retina'

import numpy as np
import matplotlib.pyplot as plt
from getdist import plots,MCSamples

plt.plot([1,2,3], [1,2,3])
plt.show()

# 此時你會發現圖片不顯示,運行後僅輸出類似<matplotlib.lines.Line2D at 0x7f829c3cb940>。

解決辦法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%matplotlib inline
%config InlineBackend.figure_format = 'retina'

# 步驟 1: 先設置原始後端
import matplotlib
original_backend = matplotlib.get_backend()

# 步驟 2: 導入 getdist
from getdist import plots, MCSamples

# 步驟 3: 強制恢復後端
matplotlib.use(original_backend, force=True)

# 步驟 4: 重新啟用 inline 模式
%matplotlib inline

# 繪圖代碼
import matplotlib.pyplot as plt
plt.plot([1,2,3], [1,2,3])
plt.show()

另外還有一個最簡潔的方式是調整 %matplotlib inline 的位置,放在 import getdist 之後,在 import matplotlib 之前就可以;或者導入matplotlib之後,plt.switch_backend("module://matplotlib_inline.backend_inline")

參考

評論



Powered by Hexo | Theme keep Volantis

本站總訪問量 總訪客數 🌎