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 中显示的主要内容,如果未能解决你的问题,请参考以下文章

matplotlib绘图入门详解

14,Matplotlib函数式绘图

Matplotlib 绘图细节设置

python绘图之matplotlib

Python绘图matplotlib

Python 绘图包 Matplotlib Pyplot 教程