为什么matplotlib没有绘图?

Rom*_*man 22 python matplotlib

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

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

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

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

添加

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

plot(X,C)
plot(X,S)
show()
Run Code Online (Sandbox Code Playgroud)

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

添加

以下是我现在使用的行:

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

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

Fra*_*ano 48

这可能是后端的问题.什么是输出 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构建,则可以解释差异

  • 谢谢你的回答。现在我使用 `plt.savefig('name.png')` 和 `os.system('eog name.png &')` 并得到我需要的东西。老实说,我不知道“'agg'后端”是什么意思,但现在我拥有了我需要的一切(工作解决方案)。谢谢。 (2认同)
  • 你可以通过运行找到matplotlibrc文件的位置:`import matplotlib matplotlib.matplotlib_fname()`在这里查看更多:http://matplotlib.org/users/customizing.html (2认同)

Oz1*_*123 14

你需要调用这个函数:

show()
Run Code Online (Sandbox Code Playgroud)

更确切地说:

pylab.show()
Run Code Online (Sandbox Code Playgroud)

甚至更好的不使用:

from pylab import *
Run Code Online (Sandbox Code Playgroud)

而是做:

import pylab as p:
Run Code Online (Sandbox Code Playgroud)

然后:

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

p.plot(C,S)
p.show()
Run Code Online (Sandbox Code Playgroud)


小智 5

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

  %matplotlib inline
Run Code Online (Sandbox Code Playgroud)