1

我在尝试正确格式化以绘制此图时遇到了一些麻烦。这就是我到目前为止所拥有的

from pylab import*

with open("spineprox.txt") as f:
    data = f.read()

data = data.split('\n')

x = [column.split(' ')[0] for column in data]
y = [column.split(' ')[0] for column in data]

plt.title("Plot title...")    
plt.xlabel('your x label..')
plt.ylabel('your y label...')

plt.plot(x,y, c='r', label='the data')

然后它会出现这个错误:ValueError: invalid literal for float(): 56.25 0.000000578. 我不知道这个错误是什么意思。需要帮助请!

文本文件的格式如下:

56.25   0.000000578 
56.2501 0.000003219 
56.2502 0.000007031 
56.2503 0.000001969 
56.2504 0.000005641 
56.2505 0.000006891 
56.2506 0.000008656 
56.2507 0.000005109 
56.2508 0.000007937 
56.2509 0.000006266 
56.251  0.000009547 
56.2511 0.000011828 
56.2512 0.000007297 
56.2513 0.000008641 
56.2514 0.000008969 
56.2515 0.000008234 
56.2516 0.000007984 
56.2517 0.000010266 
56.2518 0.000004594 
56.2519 0.000008469 
56.252  0.000006297
4

2 回答 2

2

您的问题是数字仍然是字符串,您没有在任何地方转换为浮点数。

x = [float(column.split(' ')[0]) for column in data]
y = [float(column.split(' ')[0]) for column in data]

不要重新发明轮子,更好的选择是使用numpy.loadtxt而不是手动解析文件。

import numpy as np
x,y = np.loadtxt('spineprox.txt').T
于 2013-05-09T10:20:36.120 回答
1

要读取文本文件,您可以更好地使用内置函数,而不是自己逐行读取和解析:

np.loadtxt("spineprox.txt")

有关文档,请参见此处:http: //docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html

然后它变成这样,您可以在其中访问xy作为数组的列:

data = np.loadtxt("spineprox.txt") 
x = data[:,0] 
y = data[:,1]

plt.plot(x,y)

x, y = data.T如 Wim 建议的那样

于 2013-05-09T10:19:38.060 回答