为什么matplotlib没有绘图?

时间:2013-01-28 09:19:15

标签: python matplotlib

我开始使用this教程为初学者学习MatPlotLib。这是第一个例子。

from pylab import *
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

如果我将这3行写入我的python文件并在命令行中执行(通过键入python file_name.py),则没有任何反应。没有错误信息,没有情节。

有人知道为什么我没看到情节吗?

ADDED

当然我需要使用show。但即使我添加以下3行:

plot(X,C)
plot(X,S)
show()

它仍然没有产生任何东西。

ADDED

以下是我现在使用的行:

import pylab as p
C = [1,2,3,4]
S = [10, 20, 30, 10]
p.plot(C,S)
p.show()

我仍然有相同的结果(没有)。

3 个答案:

答案 0 :(得分:49)

这可能是后端的问题。 什么是输出 python -c 'import matplotlib; import matplotlib.pyplot; print(matplotlib.backends.backend)'

如果是'agg'后端,你看到的是预期的行为,因为它是一个非交互式后端,不向屏幕显示任何内容,但使用plt.savefig(...)。 你应该切换到,例如,TkAgg或Qt4Agg,以便能够使用show。您可以在matplotlib.rc文件中执行此操作。

@shashank:我在12.04和12.10都运行matplotlib没有问题。在这两种情况下,我都使用Qt4Agg后端。如果您没有设置matplotlibrc,则使用默认后端。 我敢肯定,对于Precise matplotlib repo是用TkAgg构建的。如果Quantal版本是用例如然后,这将解释差异

答案 1 :(得分:13)

您需要调用该函数:

show()

更确切地说:

pylab.show()

甚至更好不要使用:

from pylab import *

而是:

import pylab as p:

然后:

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

p.plot(C,S)
p.show()

答案 2 :(得分:4)

尝试添加。我使用Jupyter,这对我有用。

  %matplotlib inline