我正在尝试绘制一系列数据。我的数据包含49个变量,我想将其分为7个变量。我的数据存储在由x和y两行组成的文本文件中,如下所示:
我想将两行都除以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值进行相同的处理。最后,我将绘制变量。但这效率低下并且需要很多时间。必须有一种更简单的方法,但我想不到。有人可以帮忙吗?
答案 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()