我的ipython中的图表在使用pyplot.show()命令后没有显示。

198
需要帮助在ipython中显示matplotlib图表。我没有忘记调用pyplot.show()

$ ipython --pylab

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

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

plt.show()

没有任何反应。没有错误信息。没有新窗口。我使用pip安装了matplotlib,并且没有出现错误信息。

细节:

我使用:

  • Ubuntu
  • IPython v0.11
  • Python v2.6.6
  • matplotlib v1.0.1

pylab已经过时。绘图的推荐方式是matplotlib还是pylab?请忽略带有pylab的答案。 - Trenton McKinney
18个回答

0

如果您正在使用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'或其他。

0
对我来说,如果我在macOS的~/.matplotlib下创建一个空的matplotlibrc文件,问题就会出现。在其中添加"backend: macosx"可以解决这个问题。
我认为这是一个bug:如果我的matplotlibrc中没有指定backend,它应该采用默认值。

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

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

如果启用了标准的PYTHONSTARTUP,您将无法拥有交互式绘图。

0

如果你是一个Ruby的新手,请别忘了括号 - show()


0

这不是一个很好的长期解决方案,但如果以上方法都无法解决问题,您可以使用以下代码代替 p.show():

p.savefig("output_plot.png")

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


-1
它还会在您不对任何内容调用plt.plot()时显示错误。我曾遇到过那个错误哈哈。我原以为我在循环中调用了它,但就在循环之前,我把我的数组覆盖为一个空数组,所以它从未进入循环。

-1

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


2
你能加一点解释吗?你的解决方案与其他人有何不同之处? - Ralf Stubner

-2

对于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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接