Aşağıdaki sorunla mücadele ediyorum. Bir grafik koleksiyonundan oluşan raporlar oluşturmam gerekiyor. Biri hariç tüm bu grafikler, Matplotlib varsayılan arka uç (TkAgg) kullanılarak yapılmıştır. Bir grafiğin Kahire arka ucu kullanılarak yapılması gerekiyor, bunun nedeni bir igraf grafiğini çiziyor olmam ve bu yalnızca Kahire kullanılarak çizilebilir.
Sorun şu ki, arka uçları anında değiştiremiyorum, örneğin aşağıdakiler çalışmıyor:
matplotlib.pyplot.switch_backend('cairo.png')
(switch_backend işlevinin deneysel olduğunu biliyorum)
ve ben de denedim matplotlib.use("cairo.png")
ama bu, ithalattan matplotlib.use("cairo.png")
önce açıklama gelmesi gerektiği için ithalat sorunlarına yol açıyor matplotlib.pyplot
. ancak senaryonun ömrü boyunca iki farklı arka uca ihtiyacım var.
Öyleyse sorum şu, birisi Matplotlib'de arka ucu nasıl değiştireceğinizi gösteren bir kod parçacığına sahip mi?
Çok teşekkürler!
GÜNCELLEME: Matplotlib'i yükleyen, varsayılan arka ucu gösteren, matplotlib'i kaldıran, yeniden yükleyen ve arka ucu değiştiren bir snippet yazdım:
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()
ama gerçekten bunu yapmanın yolu bu mu?
GÜNCELLEME 2: Dün ciddi bir beyin donma geçirdim ... Basit ve en bariz çözüm, tüm grafikler için Kahire arka ucunu kullanmak ve arka ucu hiç değiştirmemek :)
GÜNCELLEME 3: Aslında bu hala bir sorun, dolayısıyla matplotlib arka uçlarını dinamik olarak nasıl değiştireceğini bilenler .... lütfen cevabınızı gönderin.
pyplot.switch_backends()
. Sizin durumunuzda işe yaramayabilir.