2016-11-15 17 views
0

私は現在グラフをプロットしようとしていますが、x値を正しい場所にマップする方法を見つけなければならず、ファイルにはy値である1列しか含まれていません。リストと配列を同じ次元に変換するにはどうすればよいですか?

私は補間fuctionがx値の配列を作成することを知っていますので、配列にy値のリストを作成する必要があると思います。

私の現在の試みは、私に "ValueError:xとyは同じ第1次元を持たなければならない"というエラーを与え続けているので、何か間違っているはずです。

ここで私はこれまで持っているものです:

import matplotlib.pyplot as plt 
import numpy as np 
import csv 
from scipy.interpolate import interp1d 

x1=[] 
y1=[] 

#xvalues run from .5 to 35, I have 2048 data points 
m=interp1d([1,2048], [.5,35]) 
for i in range(1,2048): 
    x1.append(m(i)) 
x=np.asarray(x1) 

with open('FFT','r') as csvfile: 
    plots = csv.reader(csvfile, delimiter =',') 
    for row in plots: 
     y1.append(float(row[0])) 
y=np.asarray(y1) 

plt.plot(x,y,label='Loaded from file') 
plt.xlabel('X') 
plt.ylabel('Y') 
plt.title('Title\nSubtitle') 
plt.legend(loc='best') 
plt.show() 

誰もが任意のアイデアを持っている場合は、私が原因Pythonがから数値を生成する方法に感謝

+1

あなたはCSVの内容を表示できますか? y [0]とx [0]、len(x)、len(y)をチェックして、あなたが得たものを見せてください。また、あなたのCSVをどこかにアップロードしてリンクして、再現できるようにしてください。 – kabanus

+0

あるいは、 'x.shape'、' y.shape'、 'x.dtype'、' y.dtype'を印刷する方が良いでしょう。 – hpaulj

答えて

0
for i in range(1,2048): 
    x1.append(m(i)) 
x=np.asarray(x1) 

、それを本当に感謝しますrange読むべき機能、

for i in range(1,2049): 
    x1.append(m(i)) 
x=np.asarray(x1) 

それ以外の場合、最後の要素in m()

関連する問題