我想使用matplotlib绘制一个txt文件,但我一直收到此错误消息.我不熟悉python,就像我几周前开始学习的那样.文本文件的格式为(长度为2048行):
6876.593750 1
6876.302246 1
6876.003418 0
Run Code Online (Sandbox Code Playgroud)
我想绘制来自txt的数据.文件.
错误消息是[IndexError:list index out of range]
我正在使用的代码是:
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()
Run Code Online (Sandbox Code Playgroud)
先感谢您!
你只是读错了数据.这是一个更清洁的方式:
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']
Run Code Online (Sandbox Code Playgroud)
小智 5
也许你可以使用 pandas 或 numpy
import pandas as pd
data = pd.read_csv('data.txt',sep='\s+',header=None)
data = pd.DataFrame(data)
import matplotlib.pyplot as plt
x = data[0]
y = data[1]
plt.plot(x, y,'r--')
plt.show()
Run Code Online (Sandbox Code Playgroud)
这是我的数据
1 93
30 96
60 84
90 84
120 48
150 38
180 51
210 57
240 40
270 45
300 50
330 75
360 80
390 60
420 72
450 67
480 71
510 7
540 74
570 63
600 69
Run Code Online (Sandbox Code Playgroud)
用Numpy也可以用下面的方法试试
import numpy as np
import matplotlib.pyplot as plt
data = np.loadtxt('data.txt')
x = data[:, 0]
y = data[:, 1]
plt.plot(x, y,'r--')
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26035 次 |
| 最近记录: |