تحسين أداء Matplotlib Plot
قد يكون الرسم باستخدام Matplotlib بطيئًا في بعض الأحيان، خاصة عند التعامل مع الرسوم البيانية المعقدة أو المتحركة. يمكن أن يساعدك فهم الأسباب الكامنة وراء هذا التباطؤ في تحسين التعليمات البرمجية الخاصة بك للحصول على أداء أسرع.الاختناقات والتقطيع
يكمن عنق الزجاجة الأساسي في عملية رسم Matplotlib في إعادة رسم كل شيء. مع كل استدعاء إلىFig.canvas.draw(). ومع ذلك، في كثير من الحالات، لا يلزم تحديث سوى جزء صغير من قطعة الأرض. هذا هو المكان الذي يأتي فيه الـ Blitting.
يتضمن الـ Blitting رسم المناطق المحدثة فقط من الحبكة، مع الحفاظ على الخلفية. للقيام بذلك بكفاءة، يمكنك استخدام التعليمات البرمجية الخاصة بالواجهة الخلفية. إذا كنت تستخدم مجموعة أدوات واجهة المستخدم الرسومية لتضمين مخططات matplotlib، فهذا خيار قابل للتطبيق.
تحسين التعليمات البرمجية للمسح
بالنسبة للمسح المحايد لواجهة المستخدم الرسومية، يتم اتخاذ التدابير التالية يمكن أخذها:
ارسم اللوحة القماشية قبل بدء الرسوم المتحركة:Fig.canvas.draw().توفر وحدة الرسوم المتحركة في Matplotlib طريقة ملائمة لتنفيذ عملية التقسيم. إليك مثال:
استيراد matplotlib.pyplot كـ plt استيراد matplotlib.animation كرسوم متحركة استيراد numpy كـ np # ... تحديد عناصر المؤامرة والبيانات تعريف الرسوم المتحركة (ط): # تحديث بيانات قطعة الأرض ورسم المناطق المحدثة فقط # ... إعداد الرسوم المتحركة ani = Animation.FuncAnimation(الشكل، الرسوم المتحركة، xrange(إطارات)، الفاصل الزمني = 0، blit = صحيح) plt.show()
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
# ... Define plot elements and data
def animate(i):
# Update plot data and draw updated regions only
# ... Setup animation
ani = animation.FuncAnimation(fig, animate, xrange(frames), interval=0, blit=True)
plt.show()
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3