كيفية رسم منحنى سلس في matplotlib
في كثير من الأحيان قد ترغب في رسم منحنى سلس في Matplotlib لرسم بياني خطي. لحسن الحظ، من السهل القيام بذلك باستخدام وظائف SciPy التالية:
يشرح هذا البرنامج التعليمي كيفية استخدام هذه الوظائف عمليًا.
مثال: رسم منحنى سلس في Matplotlib
يوضح الكود التالي كيفية إنشاء مخطط خطي بسيط لمجموعة من البيانات:
import numpy as np import matplotlib.pyplot as plt #create data x = np.array([1, 2, 3, 4, 5, 6, 7, 8]) y = np.array([4, 9, 12, 30, 45, 88, 140, 230]) #create line chart plt. plot (x,y) plt. show ()
لاحظ أن المخطط الخطي ليس سلسًا تمامًا نظرًا لأن البيانات الأساسية لا تتبع خطًا سلسًا. يمكننا استخدام الكود التالي لإنشاء منحنى سلس لمجموعة البيانات هذه:
from scipy.interpolate import make_interp_spline, BSpline #createdata x = np.array([1, 2, 3, 4, 5, 6, 7, 8]) y = np.array([4, 9, 12, 30, 45, 88, 140, 230]) #define x as 200 equally spaced values between the min and max of original x xnew = np. linspace ( x.min (), x.max (), 200 ) #define spline spl = make_interp_spline (x, y, k= 3 ) y_smooth = spl (xnew) #create smooth line chart plt. plot (xnew, y_smooth) plt. show ()
لاحظ أنه كلما ارتفعت الدرجة التي تستخدمها للوسيطة k ، كلما أصبح المنحنى “متموجًا” أكثر. على سبيل المثال، خذ بعين الاعتبار الرسم البياني التالي مع k=7 :
from scipy.interpolate import make_interp_spline, BSpline #createdata x = np.array([1, 2, 3, 4, 5, 6, 7, 8]) y = np.array([4, 9, 12, 30, 45, 88, 140, 230]) #define x as 200 equally spaced values between the min and max of original x xnew = np. linspace ( x.min (), x.max (), 200 ) #define spline with degree k=7 spl = make_interp_spline (x, y, k= 7 ) y_smooth = spl (xnew) #create smooth line chart plt. plot (xnew, y_smooth) plt. show ()
اعتمادًا على مدى الانحناء الذي تريده للخط، يمكنك تغيير قيمة k.
مصادر إضافية
كيفية إظهار خطوط الشبكة على مؤامرات Matplotlib
كيفية إزالة القراد من مؤامرات Matplotlib
كيفية إنشاء مخططات Matplotlib بمقاييس لوغاريتمية