Почему 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()
У меня все же есть тот же результат (ничего).
Ответы
Ответ 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