gpt4 book ai didi

python - 如何将日期时间格式的排列转换为在 python 中绘制?

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:30 24 4
gpt4 key购买 nike

我有一个这样的列表

 HEIGHT   DATE     TIME   ANGL  FC    COL     ROW
3.76 20120127 18 27 52 291.9 1 399.0 311.0
5.46 20120127 18 38 43 293.5 1 462.0 343.0
6.31 20120127 18 43 18 292.8 1 311.0 288.0
8.49 20120127 18 54 05 290.7 1 330.0 293.0
11.08 20120127 19 06 05 293.1 1 350.0 305.0
13.47 20120127 19 18 05 296.1 1 367.0 319.0
16.09 20120127 19 30 06 297.8 1 386.0 333.0
18.47 20120127 19 42 05 299.0 1 403.0 346.0
21.73 20120127 19 54 06 300.4 1 426.0 364.0
23.40 20120127 20 06 05 301.8 1 436.0 376.0
28.33 20120127 20 18 05 302.7 1 471.0 402.0

我想使用 DATE 和 TIME 行将时间安排到变量中,然后将其与其他变量进行对比

我尝试使用 datetime 但我什么也没得到

import datetime as dt
data=loadtxt('CME27.txt', skiprows=1)

col=data[:,7]
row=data[:,8]

h=data[:,2]
m=data[:,3]
s=data[:,4]

t=dt.time(h,m,s)

我有一个错误!

我想画画

plot(t,col)

谢谢

最佳答案

我认为您不能直接使用 matplotlib 绘制 datetime.time 对象。但是,您可以绘制 datetime.datetime 对象。给定 NumPy 数组 data,您必须使用 Python 循环将 float 解析为 datetime.datetime 对象。

你可以这样做:

import numpy as np
import datetime as DT
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

data = np.loadtxt('CME27.txt', skiprows=1)

col, row = data[:, 7:9].T
dates = []
for date, h, m, s in data[:,1:5]:
dates.append(
DT.datetime.strptime('{date:.0f} {h:.0f} {m:.0f} {s:.0f}'.format(**locals()),
'%Y%m%d %H %M %S'))
fig, ax = plt.subplots()
ax.plot(dates, col)
plt.xticks(rotation=25)
xfmt = mdates.DateFormatter('%H:%M:%S')
ax.xaxis.set_major_formatter(xfmt)
plt.show()

enter image description here


如果安装 pandas , 那么上面的内容可以简化为

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_table('CME27.txt', sep='\s+', skiprows=1, header=None,
parse_dates={'date':[1,2,3,4]})
df.columns = 'date height angle fc col row'.split()
df.plot('date', 'col')
plt.show()

关于python - 如何将日期时间格式的排列转换为在 python 中绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21498492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com