2016-06-16 8 views
0

numpyとmatplotlibを使用して散布図をプロットしようとしています。それは非常に簡単です、私は2つのデータファイルを持って、それぞれのデータの単一の列のセットが含まれています。どちらのファイルも同じ数のデータを持っています(これを繰り返し確認して確認しています)。matplotlibとnumpyを使用して配列全体をプロットするときにエラーが発生する

import numpy as np 
import pylab as pl 

xdata = np.loadtxt('data.txt') 
ydata = np.loadtxt('data1.txt') 

pl.plot(xdata, ydata, 'ro') 

pl.show() 

をし、それはデータが同じ寸法を有していないと言う私は、このエラー

File "C:/1aProjects/Python_Aryo/Plotting/test_plot.py", line 10, in <module> 
pl.plot(xdata, ydata, 'ro') 
File "C:\Python34\lib\site-packages\matplotlib\pyplot.py", line 2987, in plot 
ret = ax.plot(*args, **kwargs) 
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 4144, in plot 
for line in self._get_lines(*args, **kwargs): 
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 319, in _grab_next_args 
for seg in self._plot_args(remaining, kwargs): 
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 297, in _plot_args 
x, y = self._xy_from_xy(x, y) 
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 239, in _xy_from_xy 
raise ValueError("x and y must have same first dimension") 
ValueError: x and y must have same first dimension 

を与える:

これは私がやったものです。

次に、特定の範囲でのみプロットしようとしましたが、以下のように行番号72402まで機能します。

pl.plot(xdata[0:72402], ydata[0:72402], 'ro') 

72402以上の値を設定した場合、同じエラーメッセージが表示されます。配列のサイズが同じではないことを伝える。私のデータは実際に行72413を持っています!それはちょうど11行です!それはそれほど厄介なことですか?

誰でも手助けできますか?

+2

あなたのデータの中にはおそらく72402行しかありません... 'xdata.shape' **と**' ydata.shape'を印刷しましたか? – Holt

+0

ありがとうございます、はい、それは異なる数の行を示しています。ソートされています。 :D – arsewi

答えて

1

散布図のようにxとy変数をプロットしようとしています。 2つのベクトルは同じ長さを持つ必要があります。そのため、2つの長さのうち最小のものまでプロットすることができます。それを回避することはありません。 2つの配列の長さは明らかに等しくありません。

+0

'pl.plot(xdata [0:72403]、ydata [0:72403]、' ro ')'このような行をもう1つ追加してもまだ動作しません。その特定の行のデータを確認しました。何も間違っていません。 – arsewi

+0

要求されたタイプ、nan、引用符付き文字列、空白に適合しないデータエントリが存在する可能性がありますか? – Benjamin

+0

あなたは正しいです..!データの途中に空白が10個あります。私はそれを見つけませんでした。データの最後にはいつも何かがあると思いました。ありがとう!ソート済み – arsewi

関連する問題