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

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

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

Вопрос
Подобный пост был задан здесь , перед которым только упомянул Случаи 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