【发布时间】:2019-10-05 20:39:30
【问题描述】:
def getData(file):
f = open('N_20_T_10.txt','r')
x, y, z = [], [], []
f.readline()
for line in f:
xp, yp, zp = line.split(' ')
x.append(float(xp))
y.append(float(yp))
z.append(float(zp))
f.close()
return x, y, z
def plotData(inputFile):
x, y, z = getData(inputFile)
x = pylab.array(x)
y = pylab.array(y)
z = pylab.array(z)
N = np.linspace(1, 100, 100)
r = np.sqrt(x**2 + y**2+z**2)
mean_r = N*r
data = np.column_stack(N)
data1 = np.column_stack(mean_r)
print(data, mean_r)
#print(N, r)
np.savetxt('new.txt', list(zip(N, mean_r)), fmt='%.1f', delimiter=",")
pylab.plot(N, mean_r)
pylab.xlabel('N')
pylab.show()
plotData('N_20_T_10.txt.txt')
这是我正在使用的数据。我认为它不断出现可能是因为数据中有一些额外的空格,因为当我使用没有空格的不同文件时它工作得很好。但我不确定。
【问题讨论】:
-
f.readline() 只读取一行。也许你的意思是 f.readlines()。下面的其他答案应该可以解决您的“值太多问题”——即line.strip().split()的用法
-
@DarrylG 似乎第一行是垃圾或标题,并从循环中跳过。
-
@makozaki 你是对的,谢谢