"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحسين أداء Matplotlib Plot من أجل السرعة والكفاءة؟

كيفية تحسين أداء Matplotlib Plot من أجل السرعة والكفاءة؟

تم النشر بتاريخ 2024-11-06
تصفح:446

How to Optimize Matplotlib Plot Performance for Speed and Efficiency?

تحسين أداء Matplotlib Plot

قد يكون الرسم باستخدام Matplotlib بطيئًا في بعض الأحيان، خاصة عند التعامل مع الرسوم البيانية المعقدة أو المتحركة. يمكن أن يساعدك فهم الأسباب الكامنة وراء هذا التباطؤ في تحسين التعليمات البرمجية الخاصة بك للحصول على أداء أسرع.

الاختناقات والتقطيع

يكمن عنق الزجاجة الأساسي في عملية رسم Matplotlib في إعادة رسم كل شيء. مع كل استدعاء إلىFig.canvas.draw(). ومع ذلك، في كثير من الحالات، لا يلزم تحديث سوى جزء صغير من قطعة الأرض. هذا هو المكان الذي يأتي فيه الـ Blitting.

يتضمن الـ Blitting رسم المناطق المحدثة فقط من الحبكة، مع الحفاظ على الخلفية. للقيام بذلك بكفاءة، يمكنك استخدام التعليمات البرمجية الخاصة بالواجهة الخلفية. إذا كنت تستخدم مجموعة أدوات واجهة المستخدم الرسومية لتضمين مخططات matplotlib، فهذا خيار قابل للتطبيق.

تحسين التعليمات البرمجية للمسح

بالنسبة للمسح المحايد لواجهة المستخدم الرسومية، يتم اتخاذ التدابير التالية يمكن أخذها:

ارسم اللوحة القماشية قبل بدء الرسوم المتحركة:Fig.canvas.draw().
  1. استخدم المعلمة المتحركة=True عند إنشاء عناصر الحبكة.
  2. التقط خلفية كل قطعة فرعية باستخدامFig.canvas.copy_from_bbox(ax.bbox).
  3. استخدمFig.canvas.restore_region(background) لاستعادة الخلفية قبل تحديث بيانات قطعة الأرض.
  4. ارسم الفنان باستخدام ax.draw_artist(line)، ثم قم بمسح المنطقة المحدثة باستخدامFig.canvas.blit(ax.bbox).
وحدة الرسوم المتحركة في Matplotlib

توفر وحدة الرسوم المتحركة في 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()
بيان الافراج أعيد طبع هذه المقالة على: 1729342216 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3