2016-11-28 22 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