使用 matplotlib 绘制格式为 DD HH:MM:SS 的时间增量轴

2024-01-03

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

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

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

我可以根据实际日期和时间绘制数据,并且得到可读的结果,但这是绝对时间,而不是自事件开始以来经过的时间(该事件在上午 6:00 左右开始):

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

谢谢你的帮助!


我怀疑最简单的方法是自己编写Formatter (doc http://matplotlib.org/api/ticker_api.html#tick-formatting) 进行到 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 http://matplotlib.org/api/ticker_api.html#matplotlib.ticker.MultipleLocator)您可以很好地控制蜱虫的位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 matplotlib 绘制格式为 DD HH:MM:SS 的时间增量轴 的相关文章

随机推荐

  • 动态 ResourceBundle 键的 EL 中的字符串串联

    我有一个资源包 其中包含如下条目 entry1 value1 entry2 value2 entry3 value3 在我的 JSF 页面中 我尝试动态使用这些键 条目的 ID 来自托管 bean 我认为应该是这样的
  • preg_match_all - 正则表达式查找字符串中的完整网址

    我花了 4 个多小时试图为我的 php 代码找到正则表达式模式 但没有运气 我有一个带有 html 代码的字符串 它有很多 url 格式 例如 example com http example com http www example co
  • 在对 pandas 数据帧进行子集化时忽略 KeyError

    我有一个带有列的 pandas 数据框 dfcity1 city2 city3 city4 city5 我有一个清单my cities city1 city3 city10 我想根据中的列对 df 进行子集化my cities 当我做 my
  • 在 MatLab 中将矩阵的列与 3d 矩阵的 2d 矩阵切片相乘

    基本上 我想执行以下计算 G is m x n x k S is n x k Answer zeros m d for Index 1 k Answer Index G Index S Index end 因此 答案是一个矩阵 其列是 3d
  • 如何在 C++ 中读取带有逗号分隔值的流?

    我想强调一个基本问题 假设您有一个 CSV 文件并使用输入标题填充单元格 该代码应从 csv 文件读取此内容并将结果写入 csv 文件 最好还对输出案例总数以及案例平均值进行编码 这是一个示例表单 我想看看如何有效地采用它来完成这个基本示例
  • ggplot 具有不同页面布局的一份 pdf 的绘图列表

    我想生成一个包含许多页 ggplots 的 pdf 文件 使用gridExtra 我还可以用 a 构建一个绘图页面m x n布局 m一排排的地块 n地块列 功能ggsave允许我写一页图 甚至是那些用gridExtra拥有m x n lay
  • 使用 AJAX 加载异地内容

    我正在构建一个 PHP 页面 它将把一些场外内容加载到 DIV 中 页面上还有其他静态元素 我遇到的问题是页面加载时间太长 因为 PHP 在显示页面之前加载站外内容 我正在考虑通过 AJAX 加载 DIV 中的场外内容 我假设无论 AJAX
  • 多部分 POST 请求 Google Glass

    我正在尝试使用多部分编码将附件添加到我的时间线 我一直在做类似以下的事情 req urllib2 Request url data body header header resp urllib2 urlopen req read 它对于 a
  • 在 LaTeX 文档中使用 tikzDevice 和 knit 进行 R 绘图

    我在使 ggplot2 tikzDevice 和 knit 一起工作时遇到问题 我正在使用 RStudio 并尝试在 Latex 文档中包含一些 R 图形 我用了一个非常简单的例子 documentclass article begin d
  • 韩国 Google 地图样式

    我有一个网站 我使用了样式化的谷歌地图 如果您将地图移至韩国 则没有地图特征 道路 高速公路 地点 只有命名城市和一些自治市边界 如果我删除样式 所有这些功能都会恢复 我对哪个功能进行样式设置似乎并不重要 这种情况在应用第一个更改时就会发生
  • 如何在 Mac OS 安装上停止 MySQL?

    我通过安装MySQLMacPorts http en wikipedia org wiki MacPorts 我需要什么命令来停止服务器 我需要测试当 MySQL 死机时我的应用程序的行为 根据您是否安装 有不同的情况MySQL http
  • 模板对象的模板友元函数和命名空间

    在以下 C 示例代码中 GCC 6 和 Clang 3 8 对正确行为的看法不一致 这个人为的例子 有效 如test 函数返回o p在海湾合作委员会 在 clang 中 它调用 未定义 函数get
  • 在 Dragenter 事件期间获取文件名

    我正在用 JavaScript 和 HTML 开发一个交互式文件上传器 我需要在其中访问当前拖动文件的文件名 触发 Dragenter 事件的文件名 但有一个问题 事件dataTransfer成员不包含任何文件 而我really在抛出 dr
  • 为什么 concat-stream 不能与 process.stdin.pipe() 一起使用?

    这是我的代码 var concat require concat stream process stdin pipe concat function console log output 我期望这样做的是每次在控制台中输入输入时输出 输出
  • 如何在微调器中允许无限整数值?

    我需要一个Spinner http en wikipedia org wiki Spinner 28computing 29用户可以在其中选择的小部件integer具有一定步长且没有下限或上限的值 我的意思是 它们至少应该在十亿范围内 所以
  • django admin 对外键字段列表进行排序

    django 管理视图中是否有用于外键字段排序的选项 即我有一个 School 模型的外键 它显示为下拉列表 按 pk 排序 我希望它按字母顺序排序 ModelAdmin具体订购通过formfield for foreignkey http
  • 如何添加 Angular $http 事件监听器

    我目前正在以角度指令上传文件 var fd new FormData fd append uploadedFile scope uploadedFile var xhr new XMLHttpRequest xhr upload addEv
  • Scala:以功能方式迭代 CSV 文件?

    我有 CSV 文件 其中包含给出列名称的注释 其中列在整个文件中发生变化 c1 c2 c3 a b c d e f c4 c5 g h i j 我想提供一种方法来迭代 仅 文件的数据行作为列名到值 所有字符串 的映射 所以上面的内容就变成了
  • 为什么我在迭代集合时不应该修改集合[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 matplotlib 绘制格式为 DD HH:MM:SS 的时间增量轴

    我正在使用 Matplotlib 绘制赛车赛事的速度 距离数据 例如距离与时间 时间为水平轴 距离为垂直轴 我的输入是两个向量 一个包含 从事件开始起的秒数 的时间值 另一个包含 到目前为止行驶的距离 同一个情节中可以有很多运动员 所以我可