2013-04-09 2 views
1

내가 파이썬의 플롯에서 데이터를 검색하고 있습니까?

f_t= [4,3,11,19,12,9,17]

t= [0,7,10,17,23,29,31]

이 나는 ​​t 대 f_t을 그려했다고 가정합니다.

이제이 7 개 데이터 포인트를 플롯하여 100 개의 데이터 포인트를 검색하여 텍스트 파일에 저장하려고합니다. 나는 무엇을해야합니까?

플롯의 피팅에 대해 묻지는 않습니다. 나는 음모가 선형이라는 2 점 사이에서 알고있다.

내가 묻는 바 t=np.arange(0,31,.1)과 같은 배열을 만들면 이전 줄거리와 잘 일치하는 f_t의 배열이 무엇인지, 즉 t = 0에서 t = 7 사이의 모든 t에 대해 f_t가 결정됩니다. (0,4)과 (7,3)을 연결하는 직선을 사용하여 등등.

답변

1

기능 np.interp는 데이터 포인트 사이의 선형 보간을 수행합니다

f2 = np.interp(np.arange(0,31,.1), t, ft) 
+0

+1 나는 polyfit 만 알았어. –

+0

내 문제를 해결해 주셔서 감사합니다. – user22180

2

직선 회귀 식을 사용하면 원하는만큼 많은 점을 파악할 수 있습니다.

선이 더 커브 인 경우 더 높은 차수의 다항식 회귀를 시도해야합니다.

예 :

import pylab 
import numpy 

py_x = [0,7,10,17,23,29,31] 

py_y = [4,3,11,19,12,9,17] 

x = numpy.asarray(py_x) 
y = numpy.asarray(py_y) 

poly = numpy.polyfit(x,y,1) # 1 is the degree here. If you want curves, put 2, 3 or 5... 

폴리 지금 당신이 다른 점을 계산하는 데 사용할 수있는 polynome입니다.

for z in range(100): 
    print numpy.polyval(poly,z) #this returns the interpolated f(z) 
+0

나는 피팅을 원하지 않는다. 나는 단지 t = [0,7,10,17,23,29,31]의 플롯에서 다른 시간에 f_t의 값을 원합니다. f_t = [4,3,11,19,12,9,17] – user22180

관련 문제