2017-03-24 1 views
0

Ich habe eine Datendatei (X- und Y-Spalten) mit verschiedenen Daten durch zwei leere Zeilen getrennt. Gibt es eine Möglichkeit, n Blöcke in der gleichen Figur mit Python getrennt darzustellen?So trennen Sie Datenblöcke und plotten in Python

1 1 
2 2 
3 3 

4 5 
5 6 
6 7 

Dies ist der Code, den ich versucht habe:

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 

Aber ich scheine immer eine falsche Handlung werden. Was vermisse ich?

+0

mit [matplotlib] (http://matplotlib.org/) wäre meine erste Vermutung sein, wenn es etwas plotten kommt. – SMFSW

+0

Wie sind Ihre Daten organisiert? kommt es aus einer .txt-Datei? Hast du irgendwas probiert? – Dadep

+0

Ja, ist es, aber wenn Sie Hilfe benötigen, müssen Sie den Code, den Sie bisher versucht haben, oder zumindest zeigen uns, wo Sie stecken bleiben !? –

Antwort

0

Wenn Sie versuchen, alle Daten auf dem gleichen Grundstück zu setzen, dann nur 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() 

Andernfalls, wenn Sie über jeden Block zu durchlaufen sind versucht, dann könnte man die Daten über Split die \n\n Leerzeichen:

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()