将文本文件中的列存储在数组中

时间:2019-05-29 21:55:55

标签: python matplotlib

我正在尝试绘制一系列数据。我的数据包含49个变量,我想将其分为7个变量。我的数据存储在由x和y两行组成的文本文件中,如下所示: enter image description here

我想将两行都除以7,并创建一个x,y图,以便它在我的图形上给我7条线。我尝试这样做:

lines = f.readlines()
lines1 = lines1[0:6]
lines2 = lines2[7:14]
lines3 = lines3[15:21]
lines4 = lines4[21:28]
lines5 = lines5[28:35]
lines6 = lines6[35:42]
lines7 = lines7[43:49]

然后我将上述所有数据放入一个数组中,并对y值进行相同的处理。最后,我将绘制变量。但这效率低下并且需要很多时间。必须有一种更简单的方法,但我想不到。有人可以帮忙吗?

Wrong plot

1 个答案:

答案 0 :(得分:0)

您可以使用NumPy的loadtxt读取数据,然后使用for循环以7为批次绘制x和y坐标。以下是示例答案。只需用您的实际文件名(包括文件所在的目录)替换sample.txt

import numpy as np
import matplotlib.pyplot as plt

x, y = np.loadtxt('sample.txt', unpack=True)

for i in range(0, 49, 7):
    plt.plot(x[i:i+7], y[i:i+7])

plt.show()    

编辑添加标签

for lab, i in enumerate(range(0, 49, 7)):
    plt.plot(x[i:i+7], y[i:i+7], label='group %d' %lab)
plt.legend()
plt.show()