我的 ipython 中的绘图无法通过 pyplot.show() 显示
- 2025-02-28 08:23:00
- admin 原创
- 80
问题描述:
需要帮助显示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.pyplot
as 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类似,我通过升级解决了这个问题matplotlib
。pip 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
扫码咨询,免费领取项目管理大礼包!