Matplotlib mpl.figure.Figure () завершается ошибкой, тогда как fig, ax = plt.subplots () завершается успешно - PullRequest
0 голосов
/ 09 марта 2020

Я хочу создать matplotlib Figure без использования pyplot с использованием matplotlib 2.1.2. Это происходит с ошибкой атрибута.

import matplotlib as mpl
fig = mpl.figure.Figure()

AttributeError: модуль 'matplotlib' не имеет атрибута 'figure'

Однако, если есть импорт какого-либо бэкенда Перед вызовом фигуры это удается. В качестве альтернативы в Jupyter, если есть %matplotlib inline или %matplotlib widget, это также успешно выполняется.

import matplotlib as mpl
import matplotlib.backends.backend_tkagg as tkagg
fig = mpl.figure.Figure()

Как импорт бэкэнда может добавить число в matplotlib? Это ожидаемое поведение?

Интерфейс pyplot, похоже, не имеет такой зависимости:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()

всегда успешно выполняется независимо от того, был ли сервер импортирован или нет.

1 Ответ

1 голос
/ 09 марта 2020

Это просто вопрос упрощения импорта.

import matplotlib.figure
fig = matplotlib.figure.Figure()

работает должным образом, т.е. убедитесь, что субмодули импортированы перед их использованием.

...