Jupyter Notebook中添加matplotlib垂直线仅返回Line2D对象无图形问题
问题排查与解决
你遇到的核心问题是绘图代码与添加垂直线的代码分属不同单元格:绘制密度图的单元格已经完成图形输出,后续添加垂直线的代码仅生成了Line2D对象,但没有触发图形的重新渲染,所以看不到最终效果。
具体解决方法:
- 合并代码到同一单元格:把绘图和添加垂直线的逻辑放在同一个单元格执行,pandas会在同一个绘图上下文里完成所有操作并自动显示图形:
graph1 = sakila['film_replacement_cost'].plot(kind='density', figsize=(20,10)) graph1.axvline(sakila['film_replacement_cost'].mean(), color='red')
- 显式调用
plt.show():如果必须分单元格执行,在添加垂直线的代码末尾加上plt.show(),强制触发图形渲染:
graph1.axvline(sakila['film_replacement_cost'].mean(), color='red') plt.show()
- 确认
%matplotlib inline生效:如果重启过Jupyter内核,要重新执行包含%matplotlib inline的单元格,确保该魔法命令在当前会话中启用。
另外,也可以直接用matplotlib原生API绘制,逻辑更直观:
plt.figure(figsize=(20,10)) sakila['film_replacement_cost'].plot(kind='density') plt.axvline(sakila['film_replacement_cost'].mean(), color='red') plt.show()
内容的提问来源于stack exchange,提问作者Pepus
相关产品推荐
相关产品推荐

