我最近开始使用sublimetext 2,但是我今天注意到在{submpimetext>中运行时plt.show()
函数似乎不起作用。
例如,如果我创建以下脚本:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
使用IDLE运行此选项会生成一个绘图,但是使用sublimetext时不会生成任何输出。它只是一直“思考”,直到我结束python.exe进程,然后输出[Finished]。
我是否误解了sublimetext的使用方式?
感谢。
答案 0 :(得分:14)
我的猜测是Sublime Text 2会在自己的环境中启动您的代码,并且只捕获并显示控制台输出。使用GUI时存在同样的问题,例如wxPython。
另一个解决方法是打开命令提示符并手动启动它(python file.py)。
编辑: Here它声明“在Windows下,GUI受到压制。”
编辑2: Here它列出了一种解决方法,就在页面底部。
答案 1 :(得分:14)
更合适的方法是在默认的Python构建系统文件中添加一行:
"shell": true
或者使用以下命令制作其他Python构建系统:
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"shell": true
}
答案 2 :(得分:11)
我按照上面的建议尝试了theta的答案。它工作正常。如果控制台立即打开和关闭,就像直接从文件浏览器运行python文件一样,只需在最后添加以下行:
matplotlib.pyplot.show('hold')
这是我第一次回答这里。对不起,如果我没有遵守答案格式。
答案 3 :(得分:3)
请注意sublime text 3(安装了anaconda包)
你需要添加一个自定义构建系统,如theta所说:
首先在\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
}
并记得像Roald所说的那样添加plt.show()
。
plt.imshow(image)
plt.show()
演示:
答案 4 :(得分:1)
我在Ubuntu下遇到过类似的问题。我试图像这样绘制pandas
DataFrame
:
df = pandas.DataFrame([*range(5)])
df.plot()
但情节没有表现出来。事实证明,您需要执行plt.show()
,正如所讨论的here。