23

我开始使用教程为初学者学习 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),则不会发生任何事情。没有错误信息,没有情节。

有人知道为什么我看不到剧情吗?

添加

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

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

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

添加

这是我现在使用的行:

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

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

4

3 回答 3

52

这可能是后端的问题。的输出是 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 版本是用例如 Agg 构建的,那么这将解释差异

于 2013-01-28T10:15:22.110 回答
14

您需要调用该函数:

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()
于 2013-01-28T09:22:39.143 回答
5

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

  %matplotlib inline
于 2017-10-10T07:01:24.050 回答