2017-03-24 14 views
0

データファイル(xとyの列)に異なるデータを2つの空行で区切ります。 Pythonを使ってn個のブロックを別々の図にプロットする方法はありますか?データブロックとプロットをPythonで分離する方法

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

[matplotlibの](http://matplotlib.org/)を使用しては私の最初の推測になります。 – SMFSW

+0

あなたのデータはどのように編成されていますか?それは.txtファイルから来ますか?何か試しましたか? – Dadep

+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() 
関連する問題