我有一个数据文件(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
但我似乎得到了错误的情节。我错过了什么?
答案 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()