我有一些麻烦试图让格式正确以绘制此图表。这就是我到目前为止所拥有的
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
。我不知道这个错误意味着什么。需要帮助PLZ!
文本文件的格式如下:
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
答案 0 :(得分: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
答案 1 :(得分:1)
要阅读文本文件,您可以更好地使用内置函数,而不是逐行阅读和解析它:
np.loadtxt("spineprox.txt")
请参阅此处了解文档:http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html
然后就会出现这样的情况,您可以在其中访问x
和y
作为数组的列:
data = np.loadtxt("spineprox.txt")
x = data[:,0]
y = data[:,1]
plt.plot(x,y)
或Wim提出的x, y = data.T