PyCharm社区版逐行运行代码时matplotlib绘图不显示问题咨询
问题产生原因
- PyCharm的Python Console默认开启了Matplotlib交互模式,同时默认设置「在工具窗口显示绘图」,逐行运行代码时,绘图结果会直接渲染到「Python Console」面板内嵌的「Plots」标签页中,不会触发独立窗口弹出,并非代码未执行成功。
- 全文件运行时启动的是独立Python进程,默认没有开启交互模式,
plt.show()会阻塞进程并弹出独立绘图窗口,和逐行运行的环境配置存在差异。
无需调试器的解决方案
- 方法1:直接查看内嵌绘图
逐行运行完代码后,点击底部「Python Console」顶部的「Plots」标签,就能直接看到生成的图像,点击Plots面板右上角的「在新窗口显示」按钮,也可以把图像导出到独立窗口查看。 - 方法2:临时关闭交互模式
逐行运行绘图代码前,先执行plt.ioff(),之后再运行plt.show()就会直接弹出独立绘图窗口,和全文件运行的效果完全一致,需要恢复内嵌模式的话执行plt.ion()即可。 - 方法3:永久修改Console绘图配置
打开菜单栏「File → Settings → Build, Execution, Deployment → Console → Python Console」,取消勾选「Show plots in tool window」,保存后所有逐行运行生成的绘图都会直接弹出独立窗口,不需要额外执行命令。 - 方法4:改用Jupyter Notebook模式(更接近RStudio使用体验)
PyCharm社区版原生支持运行.ipynb格式的Jupyter文件,单元格逐块运行的逻辑和RStudio完全对齐,运行后的变量会保存在当前内核环境中,可直接在变量面板查看,绘图支持内嵌/弹出两种模式,比逐行选代码运行效率更高。 - 方法5:修改运行配置复用Console环境
如果希望全文件运行后的变量也保留在Python Console中,不需要重复逐行运行,可点击右上角运行按钮左侧的下拉框,选择「Edit Configurations」,找到对应脚本的运行配置,勾选「Execution → Run with Python Console」,保存后全文件运行的结果也会存储在Console环境中,和逐行运行的环境打通。
内容的提问来源于stack exchange,提问作者Lumi Nor
相关产品推荐
相关产品推荐

