Saya berjuang dengan masalah berikut. Saya perlu membuat laporan yang terdiri dari kumpulan grafik. Semua grafik ini, kecuali satu, dibuat menggunakan backend default Matplotlib (TkAgg). Satu grafik perlu dibuat menggunakan backend Kairo, alasannya adalah saya sedang memplot grafik igraph dan itu hanya dapat diplot menggunakan Kairo.
Masalahnya adalah saya tidak dapat mengubah backend dengan cepat, misalnya berikut ini tidak berfungsi:
matplotlib.pyplot.switch_backend('cairo.png')
(Saya tahu bahwa fungsi switch_backend bersifat eksperimental)
dan saya juga telah mencoba matplotlib.use("cairo.png")
tetapi ini menyebabkan masalah impor karena matplotlib.use("cairo.png")
pernyataan tersebut harus ada sebelum mengimpor matplotlib.pyplot
. tetapi saya membutuhkan dua backend yang berbeda selama masa pakai skrip.
Jadi pertanyaan saya adalah apakah seseorang memiliki potongan kode yang menunjukkan cara mengganti backend di Matplotlib?
Terima kasih banyak!
UPDATE: Saya telah menulis cuplikan yang memuat matplotlib, menunjukkan backend default, membongkar matplotlib, memuatnya kembali dan mengubah backend:
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()
tetapi apakah ini benar-benar cara untuk melakukannya?
PEMBARUAN 2: Saya mengalami pembekuan otak yang serius kemarin ... Solusi sederhana dan paling jelas adalah menggunakan backend Kairo untuk semua grafik dan tidak mengganti backend sama sekali :)
PEMBARUAN 3: Sebenarnya, ini masih menjadi masalah, jadi siapa pun yang tahu cara mengganti backend matplotlib secara dinamis .... silakan kirim jawaban Anda.
pyplot.switch_backends()
. Ini mungkin tidak berhasil dalam kasus Anda.