如何使用matplotlib从.txt文件中绘制数据?

问题描述 投票:4回答:3

我想使用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()

谢谢你!

python matplotlib
3个回答
6
投票

您只是错误地读取了数据。这是一种更清洁的方法:

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']

1
投票

一种快速的解决方案是删除数据中的第四个元素,如下所示:

data.pop()

放置在]之后>

data = data.split('\n')

0
投票

Chris Arena的答案很简洁。请记住,您正在将str保存到列表中。如果要使用matplotlib绘制x和y,我建议将格式从'str'更改为'int'或'float':

© www.soinside.com 2019 - 2024. All rights reserved.