如何在PythonAnywhere Bash控制台用Matplotlib绘图且不保存为文件
在PythonAnywhere Bash控制台用Matplotlib无文件绘图的方法
两种实现方案,根据你的控制台环境选择:
方案1:带X11转发的图形界面显示
如果你通过SSH带X11转发登录PythonAnywhere(命令:ssh -X 你的用户名@pythonanywhere.com),可以直接显示图形窗口:
- 删除原代码中的
matplotlib.use("Agg")(Agg是无界面后端,仅支持保存文件) - 把
fig.savefig("graph.png")替换为plt.show(),调用交互式显示
修改后的代码:
import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) ax.plot(range(100)) plt.show()
方案2:纯文本终端的ASCII绘图
如果用PythonAnywhere网页端的Bash控制台(无X11支持),可以用ASCII字符形式输出图形:
- 指定
dumb后端,这个后端专门用于纯文本环境生成ASCII图形 - 同样用
plt.show()替代保存文件的代码,图形会直接打印在控制台
修改后的代码:
import matplotlib matplotlib.use("dumb") import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) ax.plot(range(100)) plt.show()
关键说明
Agg后端是非交互式的,只能将图形写入文件,无法直接显示,所以必须替换或移除这个配置- 网页端Bash控制台默认没有X11转发权限,只能用ASCII方案;SSH登录时记得加
-X参数开启X11转发才能用图形界面方案
内容的提问来源于stack exchange,提问作者Jesy Jeff Laura. E
相关产品推荐
相关产品推荐

