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

Как снова получить интерактивные сюжеты в Spyder/IPython/matplotlib?

Я обновил с Python (x, y) 2.7.2.3 до 2.7.6.0 в Windows 7 (и был рад видеть, что я могу, наконец, ввести function_name? и снова просмотрите документацию в инспекторе объектов), но теперь построение графика не работает так, как оно использовалось.

Ранее (Spyder 2.1.9, IPython 0.10.2, matplotlib 1.2.1), когда я построил этот script, например, он построил бы подсети бок о бок в интерактивном окне:

enter image description here

Теперь (Spyder 2.2.5, IPython 1.2.0, Matplotlib 1.3.1), когда я пытаюсь построить сюжет, он делает подзаголовки как крошечные встроенные PNG, что является изменением в IPython:

tiny inline PNGs

Итак, я пошел в опции и нашел это:

graphics options

который, кажется, говорит, что я могу вернуть старые интерактивные сюжеты, причем 4 подсети отображаются бок о бок, но когда я переключаюсь на "Автоматически" и пытаюсь что-то нарисовать, он ничего не делает. Никаких сюжетов вообще.

Если я переключу это раскрывающееся меню на Qt или сниму флажок "Активировать поддержку", он отображает только первый подзаговор или его часть, а затем останавливается:

enter image description here

Как мне получить старое поведение 4 бок о бок подсетей на одной фигуре, с которой я могу взаимодействовать?

4b9b3361

Ответ 1

Измените backend на автоматический:

Инструменты > настройки > Консоль IPython > Графикa > Бэкэнд > Бэкэнд: Автоматический

Затем закройте и откройте Spyder.

Ответ 2

Вы можете быстро управлять этим, набрав встроенные магические команды в консоли Spyder IPython, что, как мне кажется, быстрее, чем выбирать их из меню настроек. Изменения вступают в силу немедленно, без необходимости перезапуска Spyder или ядра.

Чтобы переключиться на "автоматические" (то есть интерактивные) графики, введите:

%matplotlib auto

затем, если вы хотите переключиться обратно на "inline", введите:

%matplotlib inline

(Примечание: эти команды не работают в консолях не-IPython)

Дополнительную информацию см. в разделе Цель "% matplotlib inline "

Ответ 3

После применения: Инструменты> Настройки> Графика> Бэкэнд> Автоматически Просто перезапустите ядро enter image description here

И вы обязательно получите интерактивный сюжет. Удачного кодирования!

Ответ 4

Как говорится в комментариях, проблема заключается в вашем script. На самом деле, есть две проблемы:

  • Есть ошибка matplotlib, я предполагаю, что вы передаете аргумент как None где-то. Может быть, из-за defaultdict?
  • Вы вызываете show() после каждого подзаголовка. show() следует вызывать один раз в конце вашего script. Альтернативой является использование интерактивного режима, поиск ion в документации matplotlib.