% ноутбука 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