我的 ipython 中的绘图无法通过 pyplot.show() 显示

2025-02-28 08:23:00
admin
原创
80
摘要:问题描述:需要帮助显示matplotlib图表ipython。我没有忘记打电话pyplot.show()。$ ipython--pylabimport matplotlib.pyplot as plt plt.plot(range(20), range(20)) matplotlib.lines.Line2D...

问题描述:

需要帮助显示matplotlib图表ipython。我没有忘记打电话pyplot.show()

$ ipython--pylab

import matplotlib.pyplot as plt
plt.plot(range(20), range(20))

matplotlib.lines.Line2D at 0xade2b2c它作为输出返回。

plt.show()

什么都没发生。没有错误消息。没有新窗口。我matplotlib使用进行安装pip,没有出现任何错误消息。

细节:

我用的是,

  • Ubuntu

  • IPython 0.11版

  • Python v2.6.6

  • matplotlib v1.0.1


解决方案 1:

如果我将后端设置为template~/.matplotlib/matplotlibrc那么我可以重现您的症状:

〜/ .matplotlib / matplotlibrc:

# backend      : GtkAgg
backend      : template

请注意,文件matplotlibrc可能不在目录中~/.matplotlib/。在这种情况下,以下代码显示它的位置:

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

In [1]: import matplotlib.pyplot as p

In [2]: p.plot(range(20),range(20))
Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>]

In [3]: p.show()

如果你编辑~/.matplotlib/matplotlibrc并将后端更改为类似 的内容GtkAgg,你应该会看到一个图。你可以使用以下命令列出计算机上可用的所有后端

import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)

它应该返回如下列表:

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']

参考:

  • 自定义 matplotlib

解决方案 2:

我在 Ubuntu 12.04 上遇到了完全相同的问题,因为我使用以下方式安装了 matplotlib(在虚拟环境中)

pip install matplotlib

长话短说,我的建议是:不要尝试使用 pip 或手动安装 matplotlib;让真正的包管理器(例如 apt-get / synaptic)为您安装它及其所有依赖项。

不幸的是,matplotlib 的后端(实际渲染图表的替代方法)具有各种 pip 无法处理的依赖项。更糟糕的是,它会默默失败;也就是说,pip install matplotlib似乎成功安装了 matplotlib。但是当您尝试使用它(例如pyplot.show())时,不会出现任何绘图窗口。我尝试了网上人们建议的所有不同的后端(Qt4Agg、GTK 等),但都失败了(例如,当我尝试导入 matplotlib.pyplot 时,我得到了提示,ImportError因为它试图导入一些缺少的依赖项)。然后我研究了如何安装这些依赖项,但这让我想放弃使用 pip(在 virtualenv 内)作为任何具有非 Python 包依赖项的包的可行安装解决方案。

整个体验让我不得不回到 apt-get / synaptic(即 Ubuntu 包管理器)来安装 matplotlib 等软件。效果非常好。当然,这意味着您只能安装到系统目录中,没有虚拟环境,而且您只能使用 Ubuntu 分发的版本,而这些版本可能远远落后于当前版本……

解决方案 3:

在绘图之前,先将其添加%matplotlib inline到笔记本中。

解决方案 4:

只需输入:

plt.ion()

请参阅https://www.youtube.com/watch?v=1zmV8lZsHF4 23:30!

plt因为我的导入而被使用:import matplotlib.pyplotas plt

我在带有 iTerm2 的 Mac 上使用 python2.7。

解决方案 5:

备查,

我遇到了同样的问题——pylab 在 ipython 下没有显示。通过更改 ipython 的配置文件 {ipython_config.py} 解决了该问题。在配置文件中

c.InteractiveShellApp.pylab = 'auto'

我将“auto”改为“qt”,现在我看到了图表

解决方案 6:

解决我的问题的只是在 ipython 笔记本顶部使用以下两行

%matplotib inline
%pylab inline

并且成功了。我使用的是 Ubuntu16.04 和 ipython-5.1

解决方案 7:

在导入 pylab 之前添加以下两行似乎对我有用

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np

解决方案 8:

我必须从源代码安装 matplotlib 才能使其工作。关键说明(来自http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/)如下:

$ workon plotting
$ pip uninstall matplotlib
$ git clone https://github.com/matplotlib/matplotlib.git
$ cd matplotlib
$ python setup.py install

通过更改后端,正如@unutbu 所说,我遇到了更多问题,所有不同的后端都无法工作。

解决方案 9:

与@Rikki类似,我通过升级解决了这个问题matplotlibpip install matplotlib --upgrade如果无法升级,卸载并重新安装可能会有效。

pip uninstall matplotlib
pip install matplotlib

解决方案 10:

这不是一个很好的长期解决方案,但是如果这些都不适合你,你可以使用这个来解决这个问题p.show()

p.savefig("output_plot.png")

这将在同一目录中创建绘图图像。您可以在普通图像查看器中单独打开它。

解决方案 11:

运行代码后包括:

import pylab as p
p.show()

解决方案 12:

确保启用此启动脚本:(首选项>控制台>高级选项)

/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py

如果启用了标准 PYTHONSTARTUP,则不会有交互式绘图

解决方案 13:

对于我来说,如果我简单地在 macOS 下创建一个空 matplotlibrc文件,就会出现问题~/.matplotlib。在其中添加“backend: macosx”即可解决问题。

我认为这是一个错误:如果backend我没有指定,matplotlibrc它应该采用默认值。

解决方案 14:

如果你是 Ruby 新手,不要忘记括号 -show()

解决方案 15:

如果您使用yolov5此处描述的修复程序,则可能无法像我的情况一样工作。YOLOv5 开发人员已使用 关闭了图像预览plt.show(),因此您很可能会遇到这种情况。要解决此问题,请确保使用 yolov5 附带的 requirements.txt 文件正确配置了您的环境,然后使用解决方法:

import torch
import matplotlib

model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # Load model first
matplotlib.use('TkAgg') # Change backend after loading model

如此处所述:https ://github.com/ultralytics/yolov5/issues/2779
您还可以尝试上面提到的其他后端'Qt4Agg'

解决方案 16:

我发现我window = Tk()需要window.mainloop()

解决方案 17:

对于 Ubuntu 12.04:

sudo apt-get install python-qt4
virtualenv .env --no-site-packages
source .env/bin/activate
easy_install -U distribute
ln -s /usr/lib/python2.7/dist-packages/PyQt4 .
ln -s /usr/lib/python2.7/dist-packages/sip.so .
pip install matplotlib
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2974  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1836  
  PLM(产品生命周期管理)系统在企业的产品研发、生产与管理过程中扮演着至关重要的角色。然而,在实际运行中,资源冲突是经常会遇到的难题。资源冲突可能导致项目进度延迟、成本增加以及产品质量下降等一系列问题,严重影响企业的效益与竞争力。因此,如何有效应对PLM系统中的资源冲突,成为众多企业关注的焦点。接下来,我们将详细探讨5...
plm项目管理系统   47  
  敏捷项目管理与产品生命周期管理(PLM)的融合,正成为企业在复杂多变的市场环境中提升研发效率、增强竞争力的关键举措。随着技术的飞速发展和市场需求的快速更迭,传统的研发流程面临着诸多挑战,而将敏捷项目管理理念融入PLM,有望在2025年实现研发流程的深度优化,为企业创造更大的价值。理解敏捷项目管理与PLM的核心概念敏捷项...
plm项目   47  
  模块化设计在现代产品开发中扮演着至关重要的角色,它能够提升产品开发效率、降低成本、增强产品的可维护性与可扩展性。而产品生命周期管理(PLM)系统作为整合产品全生命周期信息的关键平台,对模块化设计有着强大的支持能力。随着技术的不断发展,到 2025 年,PLM 系统在支持模块化设计方面将有一系列令人瞩目的技术实践。数字化...
plm软件   48  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用