Matplotlib इतना धीमा क्यों है?
पायथन प्लॉटिंग लाइब्रेरी का मूल्यांकन करते समय, प्रदर्शन पर विचार करना महत्वपूर्ण है। मैटप्लोटलिब, एक व्यापक रूप से उपयोग की जाने वाली लाइब्रेरी, सुस्त लग सकती है, इसे तेज़ करने या वैकल्पिक विकल्प तलाशने के बारे में सवाल उठ रहे हैं। आइए मुद्दे पर गौर करें और संभावित समाधान तलाशें।
प्रदान किया गया उदाहरण कई सबप्लॉट और डेटा अपडेट के साथ एक प्लॉट दिखाता है। मैटप्लोटलिब के साथ, इस प्रक्रिया में अक्ष सीमाओं और टिक लेबल सहित सभी चीज़ों को फिर से तैयार करना शामिल है, जिसके परिणामस्वरूप धीमा प्रदर्शन होता है।
बाधाओं को समझना
दो प्रमुख कारक धीमेपन में योगदान करते हैं:
ब्लिटिंग के साथ अनुकूलन
इन बाधाओं को दूर करने के लिए , ब्लिटिंग का उपयोग करने पर विचार करें। ब्लिटिंग में आकृति के केवल विशिष्ट भागों को अद्यतन करना शामिल है, जिससे प्रतिपादन समय कम हो जाता है। हालाँकि, कुशल कार्यान्वयन के लिए बैकएंड-विशिष्ट कोड की आवश्यकता होती है, जिसके लिए GUI टूलकिट के भीतर Matplotlib प्लॉट्स को एम्बेड करने की आवश्यकता हो सकती है। तकनीक बैकएंड निर्भरता के बिना उचित प्रदर्शन प्रदान कर सकती है:
पृष्ठभूमि कैप्चर करें:
एनीमेशन से पहले, बाद में पुनर्स्थापित करने के लिए प्रत्येक सबप्लॉट की पृष्ठभूमि कैप्चर करें।एनीमेशन मॉड्यूल
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
fig, axes = plt.subplots(nrows=6)
styles = ['r-', 'g-', 'y-', 'm-', 'k-', 'c-']
def plot(ax, style):
return ax.plot(x, y, style, animated=True)[0]
lines = [plot(ax, style) for ax, style in zip(axes, styles)]
# Capture Background
backgrounds = [fig.canvas.copy_from_bbox(ax.bbox) for ax in axes]
for i in xrange(1, 2000):
for j, (line, ax, background) in enumerate(zip(lines, axes, backgrounds), start=1):
fig.canvas.restore_region(background)
line.set_ydata(np.sin(j*x i/10.0))
ax.draw_artist(line)
fig.canvas.blit(ax.bbox)
matplotlib.pyplot को plt के रूप में आयात करें matplotlib.animation को एनीमेशन के रूप में आयात करें डीईएफ़ चेतन(i): जे के लिए, गणना में पंक्ति (लाइनें, प्रारंभ = 1): लाइन.सेट_ydata(np.sin(j*x i/10.0)) ani = एनीमेशन.FuncAnimation(अंजीर, चेतन, xrange(1, 200), अंतराल=0, ब्लिट=सच्चा)
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3