我有以下的圖,我想數字化使用Python和Matplotlib高品質的出版物等級圖:直觀插補
我用了一個數字化計劃,以抓幾個從3個數據集合中的一個樣本:
x_data = np.array([
1,
1.2371,
1.6809,
2.89151,
5.13304,
9.23238,
])
y_data = np.array([
0.0688824,
0.0490012,
0.0332843,
0.0235889,
0.0222304,
0.0245952,
])
我已經嘗試3種不同,通過這些數據點擬合的曲線的方法。第一種方法是使用scipy.interpolate import spline
這導致(與繪製爲藍色標記的實際數據點)繪製通過點的樣條:
這是obvisously沒有好處。
我的第二次嘗試是使用scipy.optimize import curve_fit
使用一系列不同的有序polinimials繪製曲線擬合。即使到四階多項式的答案是沒有用的(低階者甚至再多也沒用):
最後,我用scipy.interpolate import interp1d
嘗試和數據點之間插入。直線插補顯然產生預期的效果,但線是直的,這運動的全部目的是爲了得到一個不錯的平滑曲線:
如果我再使用三次插值,我得到一個rubish結果,但是二次插值產生一個稍微好一點的結果是:
但是這還沒有應用,並且我不認爲interp1d
可以做更高階插值。
有沒有人有這樣做的好方法?也許我會更好地嘗試在IPE或其他方面做到這一點?
謝謝!
謝謝@ tom10徹底的回答!我一定會看看,你做的所有適合看起來足夠好,爲我的目的! – Jonny