我想使用matplotlib绘制txt文件,但我一直收到此错误消息。我对Python不太熟悉,因为我几周前开始学习。文本文件的格式如下(长度为2048行):
6876.593750 1
6876.302246 1
6876.003418 0
我想从txt中绘制数据。文件。错误消息是[IndexError:列表索引超出范围]
我正在使用的代码是:
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()
谢谢你!
您只是错误地读取了数据。这是一种更清洁的方法:
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']
一种快速的解决方案是删除数据中的第四个元素,如下所示:
data.pop()
放置在]之后>
data = data.split('\n')
Chris Arena的答案很简洁。请记住,您正在将str保存到列表中。如果要使用matplotlib绘制x和y,我建议将格式从'str'更改为'int'或'float':