Ответ 1
Измените backend на автоматический:
Инструменты > настройки > Консоль IPython > Графикa > Бэкэнд > Бэкэнд: Автоматический
Затем закройте и откройте Spyder.
Я обновил с 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, например, он построил бы подсети бок о бок в интерактивном окне:
Теперь (Spyder 2.2.5, IPython 1.2.0, Matplotlib 1.3.1), когда я пытаюсь построить сюжет, он делает подзаголовки как крошечные встроенные PNG, что является изменением в IPython:
Итак, я пошел в опции и нашел это:
который, кажется, говорит, что я могу вернуть старые интерактивные сюжеты, причем 4 подсети отображаются бок о бок, но когда я переключаюсь на "Автоматически" и пытаюсь что-то нарисовать, он ничего не делает. Никаких сюжетов вообще.
Если я переключу это раскрывающееся меню на Qt или сниму флажок "Активировать поддержку", он отображает только первый подзаговор или его часть, а затем останавливается:
Как мне получить старое поведение 4 бок о бок подсетей на одной фигуре, с которой я могу взаимодействовать?
Измените backend на автоматический:
Инструменты > настройки > Консоль IPython > Графикa > Бэкэнд > Бэкэнд: Автоматический
Затем закройте и откройте Spyder.
Вы можете быстро управлять этим, набрав встроенные магические команды в консоли Spyder IPython, что, как мне кажется, быстрее, чем выбирать их из меню настроек. Изменения вступают в силу немедленно, без необходимости перезапуска Spyder или ядра.
Чтобы переключиться на "автоматические" (то есть интерактивные) графики, введите:
%matplotlib auto
затем, если вы хотите переключиться обратно на "inline", введите:
%matplotlib inline
(Примечание: эти команды не работают в консолях не-IPython)
Дополнительную информацию см. в разделе Цель "% matplotlib inline "
После применения: Инструменты> Настройки> Графика> Бэкэнд> Автоматически Просто перезапустите ядро
И вы обязательно получите интерактивный сюжет. Удачного кодирования!
Как говорится в комментариях, проблема заключается в вашем script. На самом деле, есть две проблемы:
None
где-то. Может быть, из-за defaultdict?show()
после каждого подзаголовка. show()
следует вызывать один раз в конце вашего script. Альтернативой является использование интерактивного режима, поиск ion
в документации matplotlib.