¿Cómo puede trazar datos desde un archivo .txt usando matplotlib?

Quiero trazar un archivo txt usando matplotlib pero sigo recibiendo este mensaje de error. No estoy tan familiarizado con Python, como empecé a aprender hace un par de semanas. El archivo de texto está formateado como (tiene 2048 filas de longitud):

6876.593750 1 6876.302246 1 6876.003418 0 

Me gustaría trazar los datos del txt. expediente.
El mensaje de error es [IndexError: índice de lista fuera de rango]

El código que estoy usando es:

 import numpy as np import matplotlib.pyplot as plt with open("Alpha_Particle.txt") as f: data = f.read() data = data.split('\n') x = [row.split(' ')[0] for row in data] y = [row.split(' ')[1] for row in data] fig = plt.figure() ax1 = fig.add_subplot(111) ax1.set_title("Plot title") ax1.set_xlabel('x label') ax1.set_ylabel('y label') ax1.plot(x,y, c='r', label='the data') leg = ax1.legend() plt.show() 

¡Gracias de antemano!

Estás leyendo mal los datos. Aquí hay una forma más limpia:

 with open('Alpha_Particle.txt') as f: lines = f.readlines() x = [line.split()[0] for line in lines] y = [line.split()[1] for line in lines] x ['6876.593750', '6876.302246', '6876.003418'] y ['1', '1', '0'] 

Una solución rápida sería eliminar el cuarto elemento en datos como este:

 data.pop() 

Colocarlo despues

 data = data.split('\n') 

La respuesta de Chris Arena es clara. Tenga en cuenta que está guardando str en una lista. Si desea trazar xey usando matplotlib, sugiero cambiar el formato de ‘str’ a ‘int’ o ‘float’:

 import matplotlib.pyplot as plt with open('filename.txt', 'r') as f: line = f.readlines() x = [float(line.split()[0]) for line in lines] y = [float(line.split()[1]) for line in lines] plt.plot(x ,y) plt.show()