Matplotlib绘图不显示在sublimetext中

iRo*_*biv 15 python matplotlib sublimetext2

我最近开始使用sublimetext 2,但是我今天注意到plt.show()在sublimetext中运行时该函数似乎不起作用.

例如,我创建以下脚本:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show() 
Run Code Online (Sandbox Code Playgroud)

使用IDLE运行此操作会生成一个绘图,但是使用sublimetext不会生成任何输出.它只是一直"思考",直到我结束python.exe进程,然后输出[Finished].

我是否误解了sublimetext的用法?

谢谢.

Gar*_*ber 14

我的猜测是Sublime Text 2会在自己的环境中启动你的代码,并且只捕获并显示控制台输出.使用GUI时存在同样的问题,例如wxPython.

另一个解决方法是打开命令提示符并手动启动它(python file.py).

编辑: 在这里它声明"在Windows下,GUI被压制."

编辑2: 这里列出了一种修复方法,就在页面底部.


the*_*eta 14

更合适的方法是在默认的Python构建系统文件中添加一行:

"shell": true
Run Code Online (Sandbox Code Playgroud)

或者制作额外的Python构建系统:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true
}
Run Code Online (Sandbox Code Playgroud)


bal*_*a83 11

我按照上面的建议尝试了theta的答案.它工作正常.如果控制台立即打开和关闭,就像直接从文件资源管理器中运行python文件一样,只需在最后添加以下行:

matplotlib.pyplot.show('hold')
Run Code Online (Sandbox Code Playgroud)

这是我第一次回答这里.对不起,如果我不遵守答案格式.

  • 这应该是正确的答案.它可以保持绘图窗口,而无需修改dev环境 (4认同)

小智 5

请注意高级文字3(已安装anaconda软件包)

您需要通过theta来添加自定义构建系统,方法是:

首先在其中添加一个名为python的文件夹 \path\to\Sublime Text Build XXXX\Data\Packages

然后将一个名为的文件python.sublime-build放入该文件夹。

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true
}
Run Code Online (Sandbox Code Playgroud)

并记得添加plt.show()像Roald所说的。

plt.imshow(image)
plt.show()
Run Code Online (Sandbox Code Playgroud)

演示:

在此处输入图片说明