Matplotlib面向对象绘图无显示问题求助(Jupyter Notebook环境)
解决Jupyter中Matplotlib面向对象绘图不显示的问题
以下是几个针对性的解决方法,按优先级尝试:
确保绘图操作绑定到你创建的Axes对象
检查代码里的绘图函数是不是调用的ax对象的方法,比如ax.plot()、ax.scatter(),而不是用函数式的plt.plot()。如果误用了plt.plot(),图形会被画到默认的Figure上,你手动创建的fig/ax就没有内容,自然不显示。让Figure/Axes对象成为单元格的最后输出
在代码单元格的最后一行单独写上fig或者ax,Jupyter会自动渲染这个对象。示例代码:import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot([1,2,3], [4,5,6]) fig # 最后一行单独输出figure对象用IPython显式调用显示
如果上面的方法不行,导入IPython的display模块,强制显示Figure:from IPython.display import display import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot([1,2,3], [4,5,6]) display(fig)检查Matplotlib魔法命令
先在单元格里运行%matplotlib inline(静态显示)或者%matplotlib widget(交互式显示,适合Jupyter Lab),再执行你的面向对象绘图代码。虽然函数式正常,但有时候魔法命令的加载状态会影响OOP方式的渲染。
内容的提问来源于stack exchange,提问作者Bisma Bashir
相关产品推荐
相关产品推荐

