Matplotlib 绘图未在 sublimetext 中显示
Posted
技术标签:
【中文标题】Matplotlib 绘图未在 sublimetext 中显示【英文标题】:Matplotlib plots not displaying in sublimetext 【发布时间】:2012-06-05 14:36:46 【问题描述】:我最近开始使用 sublimetext 2,但是我今天注意到 plt.show()
函数在 sublimetext 中运行时似乎不起作用。
例如,如果我创建以下脚本:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()
使用 IDLE 运行它会生成一个绘图,但是使用 sublimetext 不会生成输出。它只是一直在“思考”,直到我结束 python.exe 进程,然后输出 [Finished]。
我是否误解了 sublimetext 的用途?
谢谢。
【问题讨论】:
你是如何在 Sublime Text 中执行脚本的?你在哪个平台上? 我不确定你的意思,我只是按了 f5。 我在 Windows 上使用 Sublime Text 3 build 3156(在 CentOS 上使用版本 3143)。该代码在两个系统上都可以正常工作。在我们按下Ctrl+B
执行脚本后显示图像窗口。
【参考方案1】:
sublime text 3中的注释(安装了anaconda包)
您需要按照 theta 的说法添加自定义构建系统,方法是:
首先在\path\to\Sublime Text Build XXXX\Data\Packages
中添加一个名为python的文件夹
然后将名为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()
演示:
【讨论】:
【参考方案2】:我在 Ubuntu 下遇到了类似的问题。我试图像这样绘制pandas
DataFrame
:
df = pandas.DataFrame([*range(5)])
df.plot()
但是剧情没有显示。结果你需要做plt.show()
,正如here所讨论的那样。
【讨论】:
【参考方案3】:我按照上面的建议尝试了 theta 的答案。它工作正常。如果控制台像直接从文件资源管理器中运行 python 文件一样立即打开和关闭,只需在末尾添加以下行:
matplotlib.pyplot.show('hold')
这是我第一次在这里回答。对不起,如果我没有遵守答案格式。
【讨论】:
这应该是正确的答案。它使绘图窗口保持打开,而无需修改开发环境 MatplotlibDeprecationWarning: 从 Matplotlib 3.1 开始不推荐在位置上传递 show() 的块参数;该参数将在 3.3 中成为仅限关键字。【参考方案4】:更合适的方法是在默认的 Python 构建系统文件中添加一行:
"shell": true
或者使用以下方法制作额外的 Python 构建系统:
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"shell": true
【讨论】:
它适用于我,但在 Windows 中我收到以下消息: CMD.EXE 以上述路径作为当前目录启动。不支持 UNC 路径。默认为 Windows 目录。现在的问题是构建有时会导致编辑器崩溃 对于 windows 文件变量必须在括号内为:"cmd": ["python", "-u", "$file"],这样可以避免获取 UNC 路径警告。【参考方案5】:我的猜测是 Sublime Text 2 在它自己的环境中启动你的代码,并且只捕获和显示控制台输出。使用 GUI 时也存在同样的问题,例如 wxPython。
另一种解决方法是打开命令提示符并手动启动它(python file.py)。
编辑:Here 声明“在 Windows 下,GUI 被抑制。”
编辑 2:Here 它在页面底部列出了修复它的方法。
【讨论】:
非常感谢!经过数小时的谷歌搜索后,这对我有用!以上是关于Matplotlib 绘图未在 sublimetext 中显示的主要内容,如果未能解决你的问题,请参考以下文章