我有一定數量的點的numpy數組。我希望採用這個數組,並使用填充和插值來更改點的數量,但在繪製MatPlotLib之類的東西時,數組看起來是相同的。取一個x點的numpy數組,並將其重新整形爲一個y點數組
我已經嘗試過功能,例如np.repeat
,np.kron
,np.lib.pad
,但收效甚微。
如)
lista = [1,2,3,4,5]
含有5分
我想這是重塑爲10分
listb = [1,1.5,2,2.5,3,3.4,4,4.5,5,5.5]
包含10分,但繪製
我有一定數量的點的numpy數組。我希望採用這個數組,並使用填充和插值來更改點的數量,但在繪製MatPlotLib之類的東西時,數組看起來是相同的。取一個x點的numpy數組,並將其重新整形爲一個y點數組
我已經嘗試過功能,例如np.repeat
,np.kron
,np.lib.pad
,但收效甚微。
如)
lista = [1,2,3,4,5]
含有5分
我想這是重塑爲10分
listb = [1,1.5,2,2.5,3,3.4,4,4.5,5,5.5]
包含10分,但繪製
如果你只是有一個線性函數擬合的線性函數,並評估它的通緝值:
import numpy as np
x_axis = np.arange(5) # These are your x-values for plotting with matplotlib
lista = [1,2,3,4,5]
所以適合現在的線性多項式:
linear_fit = np.poly1d(np.polyfit(x_axis, lista, 1))
並對其進行評估相同的網格,但更多的步驟:
linear_fit(np.linspace(x_axis[0], x_axis[-1], 9))
# array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ])
當繪圖確保您使用新的x網格:
import matplotlib.pyplot as plt
new_x = np.linspace(x_axis[0], x_axis[-1], 9)
plt.scatter(new_x, linear_fit(new_x), color='b')
plt.plot(x_axis, lista, color='r')
plt.show()
看時,看起來還是一樣http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.interpolate.interp1d.html#scipy.interpolate.interp1d 然後嘗試不同的樣條kinds
。如果數據不是很平滑,高階樣條可能會產生不希望的波動,因爲它們試圖將數據與平滑曲線(第一個或甚至第二階導數匹配)連接起來。
那些只有9中的輸出點... – MSeifert
你只是想點之間的直線解釋呢? – Alexander