【轉(zhuǎn)載】https://www.jb51.net/article/152880.htm
本文實(shí)例為大家分享了python用插值法繪制平滑曲線的具體代碼傲霸,供大家參考纺座,具體內(nèi)容如下
原圖:
平滑處理后:
代碼實(shí)現(xiàn)如下:
# 1. 隨機(jī)構(gòu)造數(shù)據(jù)
importnumpy as np
x =range(10)
y =np.random.randint(10,size=10)
# 2. 繪制原圖
importmatplotlib as mpl
importmatplotlib.pyplot as plt
%matplotlib inline # jupyter notebook顯示繪圖
fromscipy.interpolate importspline # 借助scipy庫
plt.plot(x, y)
plt.show()
# 3. 繪制平滑曲線
fromscipy.interpolate importspline
?# 插值法,50表示插值個(gè)數(shù),個(gè)數(shù)>=實(shí)際數(shù)據(jù)個(gè)數(shù),一般來說差值個(gè)數(shù)越多废封,曲線越平滑
x_new =np.linspace(min(x),max(x),50)
y_smooth =spline(x, y, x_new)
plt.plot(x_new, y_smooth)
plt.show()
以上經(jīng)過平滑后的曲線可能和原圖差距很大,這個(gè)主要看數(shù)據(jù)本身的規(guī)律性丧蘸。如果數(shù)據(jù)本身比較雜亂無章漂洋,如下:
則平滑后為:
平滑后曲線和原圖還是差得很遠(yuǎn)的,因此該方法慎用,不是萬能的刽漂。