我有一个文本文件,其中包含以下两列科学格式的数据。第一列是时间,第二列是数据。我无法读取这些数据并绘制时间与数据的关系。
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
我一直在搜索数小时,但无法正常运行。如果有人有完成这项任务的经验,我将感到非常高兴。
答案 0 :(得分:3)
我不知道你尝试了20次。使用loadtxt
和plot
非常简单。代码很短
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()
答案 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()])