Подтвердить что ты не робот

Почему matplotlib не строится?

Я начал изучать 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()

У меня все же есть тот же результат (ничего).

4b9b3361

Ответ 1

Это может быть проблемой с бэкэнд. Каков результат python -c 'import matplotlib; import matplotlib.pyplot; print(matplotlib.backends.backend)'?

Если это бэкэнд "agg", то, что вы видите, является ожидаемым поведением, так как это неинтерактивный бэкэнд, который ничего не отображает на экране, а работает с plt.savefig(...). Вы должны переключиться на, например, TkAgg или Qt4Agg, чтобы использовать show. Вы можете сделать это в файле matplotlib.rc.

@shashank: Я без проблем запускаю matplotlib как 12.04, так и 12.10. В обоих случаях я использую сервер Qt4Agg. Если у вас нет набора matplotlibrc, используется бэкэнд по умолчанию. Я уверен, что для Precise matplotlib repo был построен с TkAgg. Если версия Quantal была построена, например, Agg, то это объясняет разницу

Ответ 2

Вам нужно вызвать функцию:

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()

Ответ 3

Попробуйте добавить. Я использую Jupyter, и это сработало для меня.

  %matplotlib inline