2012-10-31 42 views
2

我與imshow()採樣數據和繪製它:插值在一個方向

enter image description here

我想插只是在水平軸,這樣我可以更容易區分樣品和斑點特徵。 是否可以用MPL單向插值?


更新
SciPy的具有全包各種插值方法。 我用最簡單的interp1d,通過tcaswell的建議:

def smooth_inter_fun(r): 
    s = interpolate.interp1d(arange(len(r)), r) 
    xnew = arange(0, len(r)-1, .1) 
    return s(xnew) 

new_data = np.vstack([smooth_inter_fun(r) for r in data]) 

線性和立方結果:

enter image description here

enter image description here

正如預期的那樣:)

+0

問題的答案在技術上是肯定的。你對什麼樣的插值感興趣?插值的哪些特徵使您期望它更容易區分特徵? – pelson

+0

橫跨X軸的任何一種插值將使得22個樣本中的每一個更加區分,因爲:1.水平邊界將使得樣本更「個體化」並且2.水平內插將使得特徵更容易被識別,因爲垂直邊界將消失, 3.它會提供新的觀點。 – theta

回答

4

tutorial蓋一系列的interp oump可用在numpy/scipy中。如果你只想要一個方向,我會獨立地處理每一行,然後重新組裝結果。您可能也感興趣的是簡單地平滑您的數據(exmple,Python Smooth Time Series Data,Using strides for an efficient moving average filter)。

def smooth_inter_fun(r): 
    #what ever process you want to use 
new_data = np.vstack([smooth_inter_fun(r) for r in data]) 
+0

'new_data = np.vstack([數據中的r [smooth_inter_fun(r)])'這麼簡單。謝謝。 – theta