gpt4 book ai didi

datetime - 时间增量的绘图轴,格式为 DD HH :MM:SS with matplotlib

转载 作者:行者123 更新时间:2023-12-04 13:50:30 25 4
gpt4 key购买 nike

我正在使用 Matplotlib 绘制赛车事件的速度/距离数据,例如距离与时间的关系,时间是水平轴,距离是垂直轴。

我的输入是两个向量,一个包含以“事件开始后的秒数”为单位的时间值,另一个包含“到目前为止行进的距离”。同一个情节可以有很多运动员,所以我可以比较他们。

问题是,如果我绘制纯时间,我会得到以秒为单位的 X 轴,这读起来不自然:

enter image description here

我可以根据一天中的实际日期和时间绘制数据,并且我得到了可读的结果,但那是绝对时间,而不是自事件开始以来耗时(这个开始于早上 6:00 左右):

enter image description here

我想要的是一种以 HMS 格式获取耗时的方法(与第二个图形相同,但时间相对于事件开始),并且可能具有缩放级别的“意识”(切换到小时:分钟,然后是缩放级别更改时的天数:小时数,以免标签与比例无关的数据过于靠近)。

感谢您的帮助!

最佳答案

我怀疑最简单的方法是编写您自己的 Formatter ( doc ) 来转换为 HMS。

import matplotlib

class myFormatter(matplotlib.ticker.Formatter):
def __call__(self,in_value_in_seconds,pos=None):
hours = int(in_value_in_seconds//(3600))
in_value_in_seconds -= hours * 3600
mins = int(in_value_in_seconds//(60))
in_value_in_seconds -= mins * 60
secs = int(in_value_in_seconds)

return str(hours) + ":" + str(mins) + ":" + str(secs)

这是(我认为)最简单的情况,不支持任何缩放。将其中的一些逻辑插入 datetime.deltatime 对象(或将它们作为参数)可能会更好。

结合 MultipleLocator ( doc ),您可以很好地控制刻度的位置。

关于datetime - 时间增量的绘图轴,格式为 DD HH :MM:SS with matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498673/

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