我正在使用 Jupyter Notebook 绘制饼图。
在我的代码的 第一个单元格 中,我有一个神奇的命令 %matplotlib inline
在这个神奇的命令之后我运行我的代码,一切正常,我的图形呈现。
但是在 第二个单元格 中,当我设置 %matplotlib notebook
进行交互式绘图时,我的图形在运行第二个单元格后不会呈现。
我需要重新启动内核并再次使用 %matplotlib notebook
运行单元,并且在此之前无法运行 %matplotlib inline
命令。
这是我的 第一个单元格 的代码 %matplotlib inline
,它呈现得很好:
import matplotlib.pyplot as plt
%matplotlib inline
labels = "No", "Yes"
sizes = [100, 50]
fig, ax = plt.subplots(figsize=(6, 6))
_, texts, autotexts = ax.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%',
shadow=False, startangle=90)
ax.axis('equal')
之后我有 第二个具有相同代码的单元格,只是 %matplotlib inline
更改为 %matplotlib notebook
。运行此单元后图形不会呈现,我需要重新启动内核并再次运行此单元。
为什么?
原文由 PeterB 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的命令顺序错误。在 jupyter 中导入 pyplot 之前应该设置后端。或者换句话说,换了后台之后,需要重新导入pyplot。
因此在导入 pyplot 之前调用
%matplotlib ...
。在第一个单元格中:
在第二个单元格中: