从科学格式的文本文件中读取两列并在Python中绘图

时间:2019-01-04 14:47:32

标签: python matplotlib

我有一个文本文件,其中包含以下两列科学格式的数据。第一列是时间,第二列是数据。我无法读取这些数据并绘制时间与数据的关系。

0.000000000000000e+000  0.000000e+000
9.765624975344167e-010  9.765624e-008
1.953124995068833e-009  1.953125e-007
3.531088169181148e-004  3.458634e-002
7.062156807112345e-004  6.807133e-002
1.059322544504354e-003  1.004552e-001
1.412429408297474e-003  1.317378e-001
1.765536272090594e-003  1.619193e-001
2.118643135883714e-003  1.909997e-001
2.471749999676832e-003  2.189789e-001
3.225098213962545e-003  2.749892e-001
3.978446428248258e-003  3.275717e-001
4.731794642533971e-003  3.767263e-001
5.485142856819683e-003  4.224531e-001
6.238491071105396e-003  4.647520e-001
6.991839285391109e-003  5.036230e-001
7.745187499676820e-003  5.390663e-001
8.651995535391102e-003  5.783692e-001
9.558803571105385e-003  6.148861e-001

我一直在搜索数小时,但无法正常运行。如果有人有完成这项任务的经验,我将感到非常高兴。

2 个答案:

答案 0 :(得分:3)

我不知道你尝试了20次。使用loadtxtplot非常简单。代码很短

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt('test.dat')
x = data[:, 0]
y = data[:, 1]
# x, y = np.loadtxt('test.dat', unpack=True) # Alternative as suggested by Jayjayyy

plt.plot(x,y, '-bx')
plt.show()

enter image description here

答案 1 :(得分:1)

即使没有@Bazingaa的回答中的np.loadtxt,也可以通过标准的float()转换来做到这一点:

with open('test.txt') as f:
    lines = f.readlines()

for line in lines:
    print([float(x) for x in line.strip().split()])