Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File PythonPylab,将文本文件分配到具有有趣格式的数组中_File_Text_Matplotlib_Plot - Fatal编程技术网

File PythonPylab,将文本文件分配到具有有趣格式的数组中

File PythonPylab,将文本文件分配到具有有趣格式的数组中,file,text,matplotlib,plot,File,Text,Matplotlib,Plot,为了绘制这张图,我在尝试正确设置格式时遇到了一些困难。这就是我目前所拥有的 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 titl

为了绘制这张图,我在尝试正确设置格式时遇到了一些困难。这就是我目前所拥有的

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:float()的文本无效:56.25 0.000000 578
。我不知道这个错误是什么意思。需要帮助

文本文件的格式如下所示:

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

要读取文本文件,最好使用内置函数,而不是逐行读取和解析:

np.loadtxt("spineprox.txt")
有关文档,请参见此处:

然后它变成这样,您可以访问
x
y
作为数组的列:

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

plt.plot(x,y)

或者,正如Wim所建议的那样,
x,y=data.T
您的问题是数字仍然是字符串,您没有在任何地方转换为浮点

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

在文本文件中看起来不是这样的……这就是你在问题中粘贴它的方式。您可以随时编辑您的问题。当我将它们切换到行时,列表索引超出范围。看起来像是由制表符分隔的列,请尝试
column.split()
data=np.loadtext(“spineprox.txt”)AttributeError:'module'对象没有属性'loadtext',现在加载需要一些时间。一定是因为此文本文件AttributeError中有太多值:“numpy.ndarray”对象没有属性“split”,您不再需要拆分
loadtxt
将为您完成此操作。从pylab导入*导入numpy作为np x,y=np.loadtxt(“spineprox.txt”)plt.title(“绘图标题…”)plt.xlabel(“您的x标签…”)plt.ylabel(“您的y标签…”)plt.plt(x,y,label='the data')您忘记了Wim答案中的
.T