我正在使用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
。运行此单元格后,该图将无法渲染,我需要重新启动内核并再次运行此单元格。
为什么?
您只是命令顺序错误。在jupyter中导入pyplot之前,应该设置一个后端。换句话说,更改后端后,需要再次导入pyplot。
因此%matplotlib ...
在导入pyplot之前先调用。
在第一个单元格中:
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,1.6,3])
在第二个单元格中:
%matplotlib notebook
#calling it a second time may prevent some graphics errors
%matplotlib notebook
import matplotlib.pyplot as plt
plt.plot([1,1.6,3])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句