วิธีการพล็อตเส้นโค้งเรียบใน 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 ด้วยมาตราส่วนลอการิทึม