% ноутбука matplotlib с пустой гистограммой
В моем ноутбуке Jupyter я теперь использую %matplotlib notebook
вместо %matplotlib inline
, это потрясающе, что теперь я могу взаимодействовать с моими сюжетами на Jupyter. Однако, когда я пытаюсь сделать гистограмму, я получаю пустой сюжет:
![% matplotlib notebook]()
Если я использую %matplotlib inline
, все работает нормально:
![% matplotlib inline]()
Что происходит?
Ответы
Ответ 1
Видя, что мой комментарий выше действительно помог кому-то решить проблему, я опубликую его как ответ.
Проблема возникает, если вы переключаетесь с %matplotlib inline
на %matplotlib notebook
без перезапуска ядра.
Переключение с %matplotlib notebook
на %matplotlib inline
работает нормально.
Поэтому решение состоит в том, чтобы либо перезапустить ядро, либо запустить новую записную книжку.
Кажется, что в некоторых случаях это помогает повторить настройку бэкэнда ноутбука, то есть вызвать его дважды как.
%matplotlib notebook
%matplotlib notebook
Анализ причин этого можно найти в этом комментарии
Ответ 2
Ответ не обязательно перезапустить все ядро.
Если вы перезагрузите модуль matplotlib, он тоже будет работать. При условии, что вы используете Python 3.6, как я, и у вас есть import matplotlib.pyplot as plt
, как я:
from importlib import reload
reload(plt)
%matplotlib notebook
Это делает трюк. Да, это все еще взломать. По крайней мере, это независимая кодовая ячейка, которую вы можете использовать в середине ноутбука. Обратное переключение через %matplotlib inline
не является проблемой.
Вы также можете удалить импортированные имена из списка sys.modules, после чего они снова будут импортированы при повторном вызове импорта.
import sys
sys.modules.pop('matplotlib')
from matplotlib import pyplot as plt
Во многих случаях это менее хорошая идея. Но иногда это может быть единственной соломинкой, чтобы держаться.
Ответ 3
Кажется, проблема заключается в взаимодействии между переключениями:
%matplotlib notebook
%matplotlib inline
и используя цифру "кнопка питания" на интерактивных графиках:
![enter image description here]()
Решение: Если вы нажали кнопку и получаете пустые участки, перезапустите Jupyter и не используйте кнопку питания снова, если вам нужно переключиться между notebook
и inline