2013-02-03 153 views
1

我对python非常陌生,我只需要它就可以分析一些生物数据。
请我如何解决以下错误帮助,
could not convert string to float
我想要绘制(时间,距离)无法将字符串转换为浮点数

下面是一些样本数据:

Nematode No. 1   1    2   2 
No. of jumps Time (sec) Distance (mm) Time  Distance 
1    0.195781141 0.893988392 1.25388 0.56569 
2    2.386623538 1.073359412 3.5848484 1.55656 
3    2.915538343 1.227371636 4.284848 2.34454545 
4    4.993603286 0.653631116 6.4545454 3.65445 
5    8.002735854 0.986036142 2.35554 0.2548545 
6    10.84267517 0.939671599 4.245454 0.5484848 

我的代码( )

from mmap import mmap,ACCESS_READ 

from xlrd import open_workbook 
from pylab import * 
from xlrd import open_workbook,XL_CELL_TEXT 
import csv 
from scipy import stats 

values = csv.reader(open('simple.csv', 'rb'), delimiter=',',skipinitialspace=True) 

for column in values: 
    print column[1],column[2] 

Time = column[1] 
Distance = column[2] 

plot(Time,Distance) 
show() 
+2

要么示例数据或代码是关闭的,测试数据具有定界符空间,而代码需要逗号,并且您的代码正在访问第2列和第3列,而示例数据只有2列。 –

+0

你好...你是什么意思它访问列2和3?我该如何改变? – Blake43

+0

我得到这个错误:Traceback(最近调用最后一次): 文件“C:/ Python27/jkjk”,第29行,在 plot(Time,Distance) 文件“C:\ Python27 \ lib \ packages \ matplotlib \ pyplot.py“,第2817行,在图 ret = ax.plot(* args,** kwargs) 文件”C:\ Python27 \ lib \ site-packages \ matplotlib \ axes.py“,行3997,在情节 self.add_line(线) 文件 “C:\ Python27 \ LIB \站点包\ matplotlib \ axes.py”,线1507,在add_line ValueError异常:无法将字符串转换为float: – Blake43

回答

2
import numpy as np 
import matplotlib.pyplot as plt 

x, y = np.loadtxt("simple.csv", skiprows=1, unpack=True) 
plt.plot(x, y) 
plt.show() 

第一行包含列名称,不能转换为浮点数,因为它们不是开头的数字,所以在尝试绘制数据时应该跳过第一行。

对于更新的数据:跳过第一2行与头和绘制第二,第三列:

x, y = np.loadtxt("simple.csv", skiprows=2, usecols=[1, 2], unpack=True) 
+0

我改变了它,但它看起来很奇怪,当我复制粘贴它希望它是有道理的......所以基本上我的第一行是线虫否,我的第一列是没有跳跃然后对于下一列我有每个线虫的时间和距离 – Blake43

+0

请帮我写一个代码,可以为每个线虫绘制独立的时间和距离图表 – Blake43

+0

@ Mel19:我更新了loadtxt()调用新数据 – jfs

相关问题