2016-11-28 45 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文檔,但該文件包含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