2017-01-22 4 views
0

グラフをプロットしようとしましたが、テキスト形式でデータを正しく読み取ることができません: "値エラー:文字列を浮動小数点に変換できませんでした" 。値のエラー:numpy.loadtxtが文字列を浮動小数点に変換できませんでした

from matplotlib import pyplot as plt 
import numpy as np 

y,x = np.loadtxt('C:\\Users\\Sarah\\Downloads\\XRDdata.txt', unpack = True, delimiter = ';') 

plt.plot(x,y) 

plt.title('Diffractogramme de la substance KNO3') 
plt.ylabel('Intensité (u.a.)') 
plt.xlabel('Angle 2θ (°)') 

plt.show() 

私のデータは次のようになります。

19.04;24.5  
19.37;11.57  
23.57;100  
23.84;55.4  
27.74;1.7  
29.06;5.69  
29.44;65.53  
32.38;33.95  
32.44;7.54  
33.09;19.97  
33.68;36.61  
33.87;48.58  
34.06;24.59  
37.35;8.61  
38.01;4.57  
38.63;9.22  
39.32;2.83  
40.74;1.59  
41.2;52.8  
41.85;25.27  
43.71;11.8  
44.18;21.33  
45.22;2.31  
46.64;21.82  
46.79;9.81  
47.02;7.97  
48.22;2.96  
48.8;1.97  
51.62;1.67  
51.86;3.78  
etc. 

は、どのように私はそれを動作させることができますか? このプログラムで私のトラブルを考えていただきありがとうございます。ただ、未回答ではない、この質問を保つために

+0

おそらくどこかで不良データです。あなたのファイル全体にリンクを張って、もっと助けてください。 –

+0

質問で指定したデータのみを読み込もうとすると、正常に動作します。したがって、エラーの理由は、データファイルのどこかに値がないか、またはデータ構造体「」に準拠していないヘッダーまたはフッターが存在する必要があります。 '。誰かのために完全なデータを提供することができます(pastebin.comなどにアップロードすることもできます)。 ['np.genfromtxt'](https://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html)を試してみてください。これは' loadtxt'よりもはるかに多くのオプションを提供します。 – ImportanceOfBeingErnest

+0

エラーに関係しない問題が1つあります: 'y、x = np.loadtxt(...、unpack = True、...)'は最初の列を 'y'に読み込み、' x'を 'x'に読み込みます。強度を角度と混合する。代わりに 'x、y = np.loadtxt ...'を使用してください。 – ImportanceOfBeingErnest

答えて

0

問題は、あなたのデータに空白(この場合はライン64)を多く含む行を持っているという事実から来ています。

enter image description here

1つのオプションは、手動で削除することはもちろんです。
np.loadtxt()の代わりにnp.genfromtxt()を使用することもできます。

x,y = np.genfromtxt('XRDdata.txt', unpack = True, delimiter = ';') 
関連する問題