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

كيف يمكنني تسهيل الخطوط في Matplotlib للحصول على تصور أفضل؟

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

How can I smooth lines in Matplotlib for better visualization?

تجانس الخطوط في Matplotlib

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

استخدام استيفاء SciPy

لتنعيم الخطوط في Matplotlib، يمكنك الاستفادة من إمكانيات مكتبة SciPy. من خلال استدعاء scipy.interpolate.spline، يمكنك إنشاء وظيفة الاستيفاء التي ستنتج منحنى سلسًا يمر عبر نقاط البيانات الأصلية.

from scipy.interpolate import spline

T = np.array([6, 7, 8, 9, 10, 11, 12])
power = np.array([1.53E 03, 5.92E 02, 2.04E 02, 7.24E 01, 2.72E 01, 1.10E 01, 4.70E 00])

xnew = np.linspace(T.min(), T.max(), 300)  # Define the number of points for smoothing

power_smooth = spline(T, power, xnew)

plt.plot(xnew, power_smooth)

في إصدارات SciPy 0.19.0 والإصدارات الأحدث، تم إهمال الشريحة واستبدالها بفئة BSpline. لتحقيق نتائج مماثلة، يمكنك استخدام الكود التالي:

from scipy.interpolate import make_interp_spline, BSpline

spl = make_interp_spline(T, power, k=3)  # k=3 indicates cubic spline interpolation
power_smooth = spl(xnew)

plt.plot(xnew, power_smooth)

تصور تأثيرات التجانس

يمكن مقارنة الحبكة الأصلية ذات الخطوط المستقيمة والحبكة المصقولة من أجل الوضوح:

[قبل]( https://i.sstatic.net/dSLtt.png)
[After](https://i.sstatic.net/olGAh.png)

كما هو واضح من الصور، تنعيم الخطوط يزيل الخشونة، مما يؤدي إلى رسم بياني أكثر جاذبية وغني بالمعلومات.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3