Поведение встроенных графиков matplotlib в блокноте Jupyter на основе содержимого ячейки - PullRequest
0 голосов
/ 23 января 2019

Мне любопытно понять объясненное ниже поведение встроенных matplotlib графиков в блокноте Jupyter. Я покажу три случая:

Случай 1: Импорт и построение в отдельных ячейках. В этом случае график появляется после выполнения обеих ячеек один раз последовательно.

enter image description here


Случай 2: Импорт и черчение в одной и той же ячейке. В этом случае график не отображается, когда ячейка [1] выполняется один раз (на рисунке ниже нет рисунка). Однако график появляется, когда снова выполняется та же самая ячейка [1]. Это вопрос, заданный как вопрос ниже.

enter image description here


Случай 3: Добавление %matplotlib inline в Дело 2, все в одной ячейке. В этом случае, как и ожидалось, график появляется после однократного выполнения ячейки. Так что никаких проблем здесь нет.

enter image description here


Вопрос

Подобный пост был задан здесь , перед которым только упомянул Случаи 2 и 3. Комментарий ImportanceOfBeingErnest к связанному посту уточнил, что Jupyter может быть настроен таким образом, чтобы использовать %matplotlib inline по умолчанию.

Итак, мой вопрос , а не , почему случаи 1 и 2 работают без %matplotlib inline, я бы хотел понять,

  • Почему ячейка [1] в случае 2 должна быть выполнена дважды, чтобы показать график, тогда как ячейки [1] и [2] в случае 1 работают, когда выполняются только один раз? import matplotlib.pyplot as plt вызывает / активирует бэкэнд по-разному под капотом при вызове в разные ячейки?

Системные характеристики

import sys
print (sys.version)
# 3.6.5 |Anaconda, Inc.

import matplotlib
print (matplotlib.__version__)
# 2.2.2

! jupyter notebook --version
# 5.5.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...