如何在Python中分离数据块和绘图

时间:2017-03-24 16:40:22

标签: python

我有一个数据文件(x和y列),不同的数据由两个空行分隔。有没有办法使用Python在同一图中分别绘制n个块?

1 1
2 2
3 3

4 5
5 6
6 7

这是我尝试过的代码:

import matplotlib.pyplot as plt from scipy
import * import numpy as np

data=np.loadtxt('data.dat')
i=0
for i in len(data):
    plt.plot(data[i:i+3,0], data[i:i+3], 'ro')
    i=i+4,
return

但我似乎得到了错误的情节。我错过了什么?

1 个答案:

答案 0 :(得分:0)

如果您尝试将所有数据放在同一个地块上,那么只需ignore the blank lines

with open('data.dat') as f:
    lines = [line for line in f if line.strip()]

data = [line.split() for line in lines]
plt.plot(*zip(*data), marker='o', color='r', ls='')
plt.show()

否则,如果您尝试迭代每个块,那么您可以在\n\n空格上拆分数据:

with open('data.dat') as f:
    lines = f.read()

blocks = lines.split('\n\n')
for block in blocks:
    data = [line.split() for line in block.splitlines()]
    plt.plot(*zip(*data), marker='o', color='r', ls='')
    plt.show()