Нет окна печати в matplotlib
Я только что установил matplotlib в Ubuntu 9.10 с помощью системы пакетов synaptic. Однако, когда я пытаюсь следующий простой пример
>>> from pylab import plot;
>>> plot([1,2,3],[1,2,3])
[<matplotlib.lines.Line2D object at 0x9aa78ec>]
Я не получаю окно графика. Любые идеи о том, как получить окно участка, чтобы показать?
10 ответов:
pylab.show()
работает, но блокирует (вам нужно закрыть окно).гораздо более удобным решением является сделать
pylab.ion()
(интерактивный режим Вкл.) при запуске: все (эквиваленты pylab)pyplot.*
команды немедленно отображают свой график. дополнительная информация об интерактивном режиме можно найти на официальном веб-сайте.Я также второй, используя еще более удобный
ipython -pylab
(--pylab
, в более новых версиях), что позволяет пропуститьfrom … import …
часть (%pylab
работает также в более новых версиях IPython).
какие ошибки появляются? Это может быть проблемой, не установив бэкэнд. Вы можете установить его из интерпретатора Python или из файла config (
.matplotlib/matplotlibrc
) в домашнем каталоге.чтобы установить бэкэнд в коде, вы можете сделать
import matplotlib matplotlib.use('Agg')
где ' Agg ' - это имя бэкэнда. Какие бэкэнды присутствуют зависят от вашей установки и ОС.
http://matplotlib.sourceforge.net/faq/installing_faq.html#backends
приведенный ниже фрагмент кода работает как на Eclipse, так и на оболочке Python:
import numpy as np import matplotlib.pyplot as plt # Come up with x and y x = np.arange(0, 5, 0.1) y = np.sin(x) # Just print x and y for fun print x print y # Plot the x and y and you are supposed to see a sine curve plt.plot(x, y) # Without the line below, the figure won't show plt.show()
современный IPython использует "
--matplotlib
" аргумент с необязательным параметром backend. Он по умолчанию "авто", что обычно достаточно хорошо на Mac и Windows. Я не тестировал его на Ubuntu или любом другом дистрибутиве Linux, но я ожидал бы, что он будет работать.ipython --matplotlib
Если вы столкнулись с проблемой, в которой
pylab.show()
замораживает окно IPython (это может быть Mac OS X specific; не уверен), вы можете cmd-c в окне IPython, переключиться в окно plot, и он вырвется.видимо, будущие вызовы
pylab.show()
не будет замораживать окно IPython, только первый вызов. К сожалению, я обнаружил, что поведение окна графика / взаимодействия с show() меняется каждый раз, когда я переустанавливаю matplotlib, поэтому это решение может не всегда держать.
если вы начинаете IPython с
--pylab
опция, вам не нужно вызыватьshow()
илиdraw()
. Попробуйте это:ipython --pylab=inline
--pylab
не работает Jupyter, но, к счастью, мы можем добавить твик в для полученияpylab
а такжеautoreload
функции.c.InteractiveShellApp.extensions = ['autoreload', 'pylab'] c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab']