Ipython: Невозможно использовать% matplotlib inline в ipython

Созданный на 3 авг. 2016  ·  9Комментарии  ·  Источник: ipython/ipython

Я использую Anaconda, python 3.5.2 и ipython 5.0.0 на OSX 10.9. Как ни странно, inline отображается как доступный бэкэнд:

В [1]:% matplotlib --list
Доступные бэкенды matplotlib: ['qt5', 'notebook', 'inline', 'qt', 'wx', 'qt4', 'nbagg', 'gtk3', 'tk', 'gtk', 'osx']

но когда я действительно пытаюсь его использовать, я получаю сообщение об ошибке:

В [2]:% matplotlib inline
...трассировки стека...
UnknownBackend: нет интеграции цикла событий для inline. Поддерживаемые циклы событий: qt, qt4, qt5, gtk, gtk2, gtk3, tk, wx, pyglet, glut, osx.

Трассировка стека прилагается.
stacktrace.txt

Самый полезный комментарий

Итак, я прочитал ответ и думаю, что он пытается сказать (хотя он очень плохо справляется с коммуникацией), это то, что вместо встроенного вы должны указать правильный бэкэнд в команде.
Так что вместо:
% matplotlib встроенный
Вы можете попробовать:
% matplotlib osx

По крайней мере, на моем Mac это работает без ошибок. Не то чтобы я мог сказать, что он что-то делает, но он не задыхается.
Если бы они хотели предоставить четкое и содержательное сообщение об ошибке, они могли бы сказать что-то вроде:
UnknownBackend: нет интеграции цикла событий для inline. Вместо inline попробуйте использовать один из поддерживаемых циклов событий: qt, qt4, qt5, gtk, gtk2, gtk3, tk, wx, pyglet, glut, osx

Все 9 Комментарий

Магия %matplotlib распределяется между терминалом IPython и IPython как ядро ​​Jupyter, поэтому он имеет одинаковый набор параметров. Но inline и notebook работают только тогда, когда это ядро ​​Jupyter. Так что ошибка здесь просто в том, что мы показываем «встроенный» как вариант, когда на самом деле это не так.

Итак, как мы можем это решить? установив какую-нибудь библиотеку?

Итак, у кого-нибудь есть решение этой проблемы?

Нет, все еще не работает после удаления inline

Я столкнулся с этой проблемой в Ubuntu 16.04 LTS, и я использую обходной путь https://stackoverflow.com/a/44840398 , то есть не использовать% matplotlib inline и добавлять plt.show () после создания графика.

Итак, я прочитал ответ и думаю, что он пытается сказать (хотя он очень плохо справляется с коммуникацией), это то, что вместо встроенного вы должны указать правильный бэкэнд в команде.
Так что вместо:
% matplotlib встроенный
Вы можете попробовать:
% matplotlib osx

По крайней мере, на моем Mac это работает без ошибок. Не то чтобы я мог сказать, что он что-то делает, но он не задыхается.
Если бы они хотели предоставить четкое и содержательное сообщение об ошибке, они могли бы сказать что-то вроде:
UnknownBackend: нет интеграции цикла событий для inline. Вместо inline попробуйте использовать один из поддерживаемых циклов событий: qt, qt4, qt5, gtk, gtk2, gtk3, tk, wx, pyglet, glut, osx

Я столкнулся с той же проблемой при тестировании на windows10 vm при проверке установки exiftool. IPython задыхался от %matplotlib inline и сбрасывал эту ошибку:
UnknownBackend: No event loop integration for 'inline'. Supported event loops are: qt, qt4, qt5, gtk, gtk2, gtk3, tk, wx, pyglet, glut, osx
Поэтому я попытался внедрить Tkinter Canvas вместо %matplotlib tk поскольку это был поддерживаемый цикл событий в соответствии с сообщением об ошибке, и это сработало. Спасибо за комментарий @steowens

Вы можете использовать режим pylab в ipython. Просто запустите ipython --pylab в терминале. Это запустит ipython, настроенный для поддержки бэкэнда графического интерфейса matplotlib.

никакие решения не работают, я использую plt.savefig ("results.png") insteead

Была ли эта страница полезной?
0 / 5 - 0 рейтинги