मैं निम्नलिखित मुद्दे से जूझ रहा हूं। मुझे ऐसी रिपोर्टें तैयार करनी होंगी जिनमें चार्ट का संग्रह हो। ये सभी चार्ट, एक को छोड़कर, Matplotlib डिफ़ॉल्ट बैकेंड (TkAgg) का उपयोग करके बनाए गए हैं। एक चार्ट काहिरा बैकएंड का उपयोग करके बनाया जाना चाहिए, इसका कारण यह है कि मैं एक इग्राफ ग्राफ की साजिश रच रहा हूं और जिसे केवल काहिरा का उपयोग करके प्लॉट किया जा सकता है।
मुद्दा यह है कि मैं मक्खी पर बैकेंड नहीं बदल सकता, उदाहरण के लिए निम्नलिखित काम नहीं करता है:
matplotlib.pyplot.switch_backend('cairo.png')
(मुझे पता है कि switch_backend कार्यक्षमता प्रयोगात्मक है)
और मैंने भी कोशिश की है matplotlib.use("cairo.png")
लेकिन इससे समस्याएँ पैदा होती हैं क्योंकि matplotlib.use("cairo.png")
आयात करने से पहले बयान आना चाहिए matplotlib.pyplot
। लेकिन मुझे स्क्रिप्ट के जीवन के दौरान दो अलग-अलग बैकेंड की आवश्यकता है।
तो मेरा सवाल यह है कि क्या किसी के पास एक कोड स्निपेट है जो दिखाता है कि मैटलपोटलिब में बैकएंड को कैसे स्विच किया जाए?
बहुत बहुत धन्यवाद!
अद्यतन: मैंने एक स्निपेट लिखा है जो 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 बैकेंड स्विच करना है .... कृपया अपना उत्तर पोस्ट करें।
pyplot.switch_backends()
। यह आपके मामले में काम नहीं कर सकता है।