【问题标题】:Matplotlib plots not displaying in sublimetextMatplotlib 绘图未在 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 执行脚本后显示图像窗口。

标签: python matplotlib sublimetext2


【解决方案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 它在页面底部列出了修复它的方法。

      【讨论】:

      • 非常感谢!经过数小时的谷歌搜索后,这对我有用!
      猜你喜欢
      • 2021-05-13
      • 2015-12-01
      • 1970-01-01
      • 2020-09-22
      • 2016-06-07
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      • 2017-11-14
      相关资源
      最近更新 更多