2016-11-28 6 views
0

これは、エディタで私のコードです:私のコードは、(フロートのための無効なリテラルを示す)

import matplotlib.pyplot as plt 

import numpy as np 

x,y = np.loadtxt('D:\Tanjil\Python\directory\Matplot_trial1.csv', 
       unpack=True , delimiter='\s') 

plt.plot(x,y,'r',label='angle=30 Degree'), 

plt.ylabel('Power Input (kW)'), 

plt.xlabel('Speed(rpm)'), 

plt.axis([750.0, 1400.0, 3.3,3.8]) 

plt.title('Power Input vs. Speed curve') 

plt.legend() 

plt.show() 

それはこのことを示しています

File "<ipython-input-19-abec5f4efd27>", line 6, in <module> 
    unpack=True , delimiter='\s') 

    File "C:\Users\bad_tanjil\Anaconda\lib\site-packages\numpy\lib\npyio.py", line 860, in loadtxt 
    items = [conv(val) for (conv, val) in zip(converters, vals)] 

ValueError: invalid literal for float(): 1350,3.64 
+0

詳細なヘルプについては、「D:\ Tanjil \ Python \ directory \ Matplot_trial1.csv」のように構造化されたサンプルファイルを提供できますか? –

答えて

1

delimiter='\s'でcsv文書を読み取ろうとしていますが、dcumentには空白で区切られていない2つの数字である1350,3.64がどこかに含まれています。あなたのcsvをチェックしてください。エラーはそこから発生しています。カンマ区切りの場合は、delimiter=','を使用します。

また、\sは空白で区切られたことを意味しない、それは文字通り\sで区切られた、空白で区切られたあなたは区切り文字を設定しないデフォルトであることを意味します。

1

あなたがリストにplt.axis()を呼び出す必要がありますこのような整数:

plt.axis([750, 1400, 3, 4]) 
+0

しかし私は、データ(1350,3.64)を持つcsvファイルをプロットしようとしています。私はいくつかのエラーがあると思います。 –

+0

問題はあなたの.csvファイルから来て、numpyは '1350,3.64'をフロートに変換しようとします。おそらく別のデリミタを使うべきでしょうか? – Chr

関連する問題