2012-04-03 117 views
1

我试图使用python matplotlib从文本文件绘制两列,但我得到转换错误

ValueError: invalid literal for float(): 148.000000;

这是我的Python脚本

import numpy as np 
import matplotlib.pyplot as plt 
x,y = np.loadtxt('sharma5.txt') 
fig = plt.figure() 
ax = fig.add_subplot(111) 
ax.plot(x,y) 
plt.show() 

这里我的文本的一部分文件

36.000000 61.000000 
36.000000 61.000000 
36.000000 148.000000; 
36.000000 60.000000 
36.000000 120.000000 
36.000000 77.000000 
36.000000 160.000000 

在此先感谢..

+0

请记住使用Ctrl-K格式化您的代码! – ptomato 2012-04-03 08:21:12

回答

1

如果你不想修复你的数据文件,你可以使用converters选项loadtxt来删除任何多余的分号。像np.loadtxt("sharma5.txt", converters = {1: lambda s: float(s.strip(";"))})应该工作。

0

问题是您的文本文件中的分号,它不被识别为转换为数字的合法字符。修复生成该文本文件的程序中的错误。