Нет окна сюжета в matplotlib - PullRequest
       48

Нет окна сюжета в matplotlib

79 голосов
/ 25 января 2010

Я только что установил matplotlib в Ubuntu 9.10, используя систему пакетов synaptic. Тем не менее, когда я пытаюсь следующий простой пример

>>> from pylab import plot;
>>> plot([1,2,3],[1,2,3])
[<matplotlib.lines.Line2D object at 0x9aa78ec>]

У меня нет окна сюжета. Любые идеи о том, как получить окно сюжета, чтобы показать?

Ответы [ 10 ]

128 голосов
/ 25 января 2010

Вы можете набрать

import pylab
pylab.show()

или лучше, используйте ipython -pylab.

36 голосов
/ 25 января 2010

pylab.show() работает, но блокирует (нужно закрыть окно).

Гораздо более удобным решением является запуск pylab.ion() (интерактивный режим включен) при запуске: все команды (эквиваленты pylab) pyplot.* немедленно отображают свой график. Более подробную информацию об интерактивном режиме можно найти на официальном веб-сайте.

Я также использую еще более удобный ipython -pylab (--pylab, в новых версиях), который позволяет пропустить часть from … import … (%pylab работает и в более новых версиях IPython).

17 голосов
/ 29 января 2011

Попробуйте это:

import matplotlib
matplotlib.use('TkAgg') 

ДО импорта pylab

10 голосов
/ 30 августа 2012

Фрагмент кода ниже работает как в 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()
9 голосов
/ 25 января 2010

Есть ошибки? Это может быть проблемой отсутствия установленного бэкэнда. Вы можете установить его из интерпретатора Python или из файла конфигурации (.matplotlib/matplotlibrc) в вашем домашнем каталоге.

Чтобы установить бэкэнд в коде, вы можете сделать

import matplotlib
matplotlib.use('Agg')

где 'Agg' - это имя бэкэнда. Какие бэкэнды присутствуют, зависит от вашей установки и ОС.

http://matplotlib.sourceforge.net/faq/installing_faq.html#backends

http://matplotlib.org/users/customizing.html

2 голосов
/ 12 октября 2016

Современный IPython использует аргумент "--matplotlib" с необязательным внутренним параметром. По умолчанию используется значение «auto», что обычно достаточно для Mac и Windows. Я не тестировал его в Ubuntu или любом другом дистрибутиве Linux, но я ожидаю, что он будет работать.

ipython --matplotlib
0 голосов
/ 17 декабря 2015

--pylab больше не работает для Jupyter , но, к счастью, мы можем добавить твик в файл ipython_config.py, чтобы получить как pylab, так и autoreload функциональные возможности.

c.InteractiveShellApp.extensions = ['autoreload', 'pylab']
c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab']
0 голосов
/ 03 февраля 2015

Если вы запускаете IPython с опцией --pylab, вам не нужно звонить show() или draw(). Попробуйте это:

ipython  --pylab=inline
0 голосов
/ 09 августа 2013

Другая возможность при использовании easy_install заключается в том, что вам нужна последняя версия matplotlib. Попробуйте:

import pkg_resources
pkg_resources.require("matplotlib")

перед импортом matplotlib или любого из его модулей.

0 голосов
/ 05 июля 2011

Если вы столкнулись с проблемой, из-за которой pylab.show() зависает в окне IPython (это может быть связано с Mac OS X; не уверен), вы можете запустить cmd-c в окне IPython, переключиться в окно графика, и оно сломается из.

Очевидно, что будущие вызовы на pylab.show() не остановят окно IPython, только первый вызов. К сожалению, я обнаружил, что поведение окна графика / взаимодействия с show () меняется каждый раз, когда я переустанавливаю matplotlib, поэтому это решение может не всегда выполняться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...