2012-04-03 140 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

問題是您的文本文件中的分號,它不被識別爲轉換爲數字的合法字符。修復生成該文本文件的程序中的錯誤。