Как изменить бэкенды в matplotlib / Python

Я борюсь со следующей проблемой. Я должен генерировать отчеты, который состоит из набора диаграмм. Все эти диаграммы, кроме одной, сделаны с помощью бэкенда значения по умолчанию Matplotlib (TkAgg). Одна диаграмма должна быть сделана с помощью Каирского бэкенда, причина состоит в том, что я строю igraph график, и это может только быть напечатано с помощью Каира.

Проблема - то, что я не могу изменить бэкенды на лету, например, следующее не работает:
matplotlib.pyplot.switch_backend('cairo.png') (Я знаю, что switch_backend функциональность экспериментальна),

и я также попробовал matplotlib.use("cairo.png") но это ведет для импорта проблем как matplotlib.use("cairo.png") оператор должен прибыть перед импортом matplotlib.pyplot. но мне нужны два различных бэкенда в течение жизни сценария.

Таким образом, мой вопрос - кто-то, имеет фрагмент кода, который показывает, как переключить бэкенд в Matplotlib?

Большое спасибо!

ОБНОВЛЕНИЕ: Я записал отрывок, который загружает matplotlib, показывает бэкенд по умолчанию, разгружает matplotlib, перезагружает его и изменяет бэкенд:

import matplotlib
import matplotlib.pyplot as plt
import sys
print matplotlib.pyplot.get_backend()

modules = []
for module in sys.modules:
    if module.startswith('matplotlib'):
        modules.append(module)

for module in modules:
    sys.modules.pop(module)

import matplotlib
matplotlib.use("cairo.png")
import matplotlib.pyplot as plt

print matplotlib.pyplot.get_backend()

но это - действительно способ сделать это?

ОБНОВЛЕНИЕ 2: вчера у Меня было некоторое серьезное мозговое замораживание... Простое и самое очевидное решение состоит в том, чтобы использовать Каирский бэкенд для всех диаграмм а не переключить бэкенд вообще :)

ОБНОВЛЕНИЕ 3: На самом деле это - все еще проблема так кто-либо, кто знает, как динамично переключить matplotlib бэкенды...., отправьте свой ответ.

68
задан makis 8 November 2019 в 23:42
поделиться