当前位置: 首页>>技术问答>>正文


matplotlib中没有绘图窗口

, ,

问题描述

我刚刚使用synaptic包系统在Ubuntu 9.10中安装了matplotlib。但是,当我尝试以下简单示例时

>>> from pylab import plot;
>>> plot([1,2,3],[1,2,3])
[<matplotlib.lines.Line2D object at 0x9aa78ec>]

我没有绘图窗口。关于如何让情节窗口显示的任何想法?

最佳解决思路

你可以输入

import pylab
pylab.show()

或更好,使用ipython -pylab


自从使用pylab is not recommended anymore以来,现在的解决方案是

import matplotlib.pyplot as plt

plt.plot([1,2,3])

plt.show()

次佳解决思路

pylab.show()可以阻止(你需要关闭窗口)。

更方便的解决方案是在启动时执行pylab.ion()(交互模式):所有(相当于pylab)pyplot.*命令立即显示其绘图。 More information on the interactive mode可以在官方网站上找到。

我还第二次使用更方便的ipython -pylab(--pylab,在较新的版本中),它允许您跳过from … import …部分(%pylab也适用于较新的IPython版本)。

第三种解决思路

试试这个:

import matplotlib
matplotlib.use('TkAgg') 

在导入pylab之前

第四种思路

下面的代码片段适用于Eclipse和Python shell:

import numpy as np
import matplotlib.pyplot as plt

# Come up with x and y
x = np.arange(0, 5, 0.1)
y = np.sin(x)

# Just print x and y for fun
print x
print y

# Plot the x and y and you are supposed to see a sine curve
plt.plot(x, y)

# Without the line below, the figure won't show
plt.show()

第五种思路

出现任何错误?这可能是一个没有设置后端的问题。您可以从Python解释器或主目录中的配置文件(.matplotlib/matplotlibrc)进行设置。

要在代码中设置后端,您可以执行此操作

import matplotlib
matplotlib.use('Agg')

其中’Agg’是后端的名称。哪些后端存在取决于您的安装和操作系统。

http://matplotlib.sourceforge.net/faq/installing_faq.html#backends

http://matplotlib.org/users/customizing.html

第六种思路

现代IPython使用带有可选后端参数的“--matplotlib”参数。默认为”auto”,在Mac和Windows上通常都足够好。我没有在Ubuntu或任何其他Linux发行版上测试它,但我希望它能够工作。

ipython --matplotlib

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6907.html,未经允许,请勿转载。