在 matplotlib 中绘制时间增量

2023-12-02

我正在阅读某年的时间(持续时间)数据,我想在 x 轴上绘制年份图表,在 y 轴上绘制时间(持续时间)图表。我希望 y 轴具有 HH:MM:SS 格式。我不知道该怎么做。这是我的代码(数据是合成的,真实数据集要大得多)。

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, date2num

df = pd.DataFrame({'Year':[2010, 2011, 2012], 
                   'Time': ['2:19:15', '2:11:16', '2:20:17']})
df['Time'] = pd.to_timedelta(df['Time'])

fig, ax = plt.subplots()

myFmt = DateFormatter("%H:%M:%S")
ax.yaxis.set_major_formatter(myFmt)

ax.plot(df['Year'], df['Time'].dt.total_seconds())

plt.gcf().autofmt_xdate()

plt.show()

如果我不转换为total_seconds,则会收到错误。总秒值似乎被解释为天数。我尝试将 Total_Seconds 除以 24*60*60,但这给了我一条关于 0 日期的消息。我也无法说服 date2num 为我工作。

我检查过以前的类似问题,但代码不再有效。

有谁知道如何在 matplotlib 中绘制 Pandas 时间增量?


将 timedelas 转换为datetime with pd.to_datetime。它会给所有内容一个 1970 年的日期,但如果您只想绘制和显示,那么这并不重要。然后你需要摆脱.dt.total_seconds() too.

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter, date2num

df = pd.DataFrame({'Year':[2010, 2011, 2012], 
                   'Time': ['2:19:15', '2:11:16', '2:20:17']})
df['Time'] = pd.to_timedelta(df['Time'])
df['Time'] = pd.to_datetime(df['Time'])
fig, ax = plt.subplots()

myFmt = DateFormatter("%H:%M:%S")
ax.yaxis.set_major_formatter(myFmt)

ax.plot(df['Year'], df['Time'])

plt.gcf().autofmt_xdate()

plt.show()

Plot Result

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

在 matplotlib 中绘制时间增量 的相关文章

随机推荐

  • 服务合约实现另一个接口

    请告诉我这是否可能 我有一个客户端 win 表单应用程序和一个 C 中的 wcf 应用程序 这是我的模型 共同项目 public interface IServiceA string DoWorkA 我没有在 Common 项目中使用 Se
  • Node.js 可读文件流未获取数据

    我正在尝试创建一个可读文件流 我可以从中读取各个字节 我正在使用下面的代码 var rs fs createReadStream file on open function var buff rs read 8 Read first 8 b
  • bash 命令中 !#:* !#:1- 的含义是什么?

    在以下 Bash 命令中 以下内容的含义是什么 1 echo This is a sentence 1 gt text3 它正在使用bash 的历史替换机制 具体来说 指当前行 直到但不包括 本身 是该行命令名称之后的部分 因此 在本例中
  • 如何从system();获取日志?

    有没有办法从 system 获取日志 就像我做的时候一样system open com apple nike 我应该得到Couldn t open application com apple nike Reason 8 applicatio
  • Visual Studio Code 使用 NVM 指定的节点版本

    VS Code 是否可以使用 NVM 指定的节点版本 我本地安装了6 9 2 即使切换到另一个版本后 从 OS X 终端 不是 VS Code 终端 重新启动 VS Code VS Code 仍然显示使用 6 9 2 OS X 终端 Mac
  • 在 R 中使用 for 循环进行卡方分析

    我正在尝试对数据中变量的所有组合进行卡方分析 我的代码是 Data lt esoph 1 3 OldStatistic lt NA for i in 1 ncol Data 1 for j in i 1 ncol Data Statisti
  • 为什么jquery中的同步ajax调用不支持超时?

    我正在读书herejquery 中的同步 ajax 调用不会超时 这是技术限制 还是只是作者不想支持的东西 当 ajax 调用是同步的时 实际上会发生什么 浏览器通过以下方式处理同步 异步请求XMLHttp请求API 但它没有内置的超时功能
  • Python 日志记录:INFO、DEBUG 日志未显示

    Python版本 2 7 我正在使用下面的代码在控制台上显示日志 但是 不显示 INFO 和 DEBUG 日志 Code import logging class LogTest def init self logger obj loggi
  • 通过 http 发送基本身份验证

    我正在尝试从需要基本身份验证的页面读取源代码 但是 在我的 HttpWebRequest 中使用标头甚至凭据 我仍然会返回未经授权的异常 401 string urlAddress URL string UserName MyUser st
  • 计算节点之间的路径长度(具有未知的边)?

    问题是如何在不知道边类型的情况下使用 sparql 查询计算三重存储 RDF 中两个节点 概念 之间的距离 本质上 就是使用Dijkstras algorithm 找到三重存储中两个概念之间的较短路径 如果我们知道边的类型 就有可能 计算节
  • 单列表迭代与多个列表理解

    我有一个数据列表 我需要将其中的一些元素复制到几个不同的列表中 对列表进行单次迭代或执行多个列表理解会更好吗 E g def split data data a b c for d in data if d 0 gt 1 a append
  • 如何将顶部和底部边框变为三角形?

    正如您在下图中看到的 我试图从底部和顶部扭曲或三角形我的 div 但我不知道该怎么做 我只是尝试了几次 但没有达到结果 那么我怎样才能使用after before psuedo呢 用 psuedo make 没关系 但我想知道该怎么做 这是
  • Android Studio 导致 Windows 8.1 崩溃

    自从我将我的电脑更新到 Windows 8 1 后 当我启动 Android Studio 并运行一个我正在测试的简单应用程序时 我收到一个 其中包含 ritic struct error 强制我的核心 i7 重新启动 当我注意到我的磁盘在
  • 用于匹配 ISO 8601 日期时间字符串的正则表达式

    有人有一个好的正则表达式模式来匹配 iso 日期时间吗 即 2010 06 15T00 00 00 对于严格的 完整的日期时间 包括毫秒 每W3C 对规范的看法 Complete precision d 4 01 d 0 3 dT 0 2
  • React 中无用的构造函数是什么?

    我有两个文件 Description js and subjects js subject js 文件包含主题数组 export const Subjects id 1 title Mathematics text Cheat Sheet
  • Shell脚本多行注释

    我有一个很大的 shell 脚本文件 有时在进行修改时我想注释掉其中的一部分 但如下例所示的注释行给了我错误 Script bin bash lt
  • 从文本文件中读取特定行[重复]

    这个问题在这里已经有答案了 可能的重复 使用 PHP 在一个大文件中获取一行 我有一个大约 200 行的文件文本 我想从此文本文件中读取特定行 我该怎么做 谢谢 未经测试 function getline file linenum line
  • go 无法在模板执行的参数中使用输出(字符串类型)作为 io.Writer 类型

    在 go 中执行模板 在我的例子中为 tmpl html 很容易操作系统标准输出但如何将其写入字符串 输出 以便稍后我可以使用以下方式在邮件中发送 html gopkg in gomail v2 var output string t te
  • 如何使用访问令牌获取 Facebook 用户 ID

    我有一个 Facebook 桌面应用程序并且正在使用图形API 我能够获取访问令牌 但完成后 我不知道如何获取用户的 ID 我的流程是这样的 我将用户发送到https graph facebook com oauth authorize具有
  • 在 matplotlib 中绘制时间增量

    我正在阅读某年的时间 持续时间 数据 我想在 x 轴上绘制年份图表 在 y 轴上绘制时间 持续时间 图表 我希望 y 轴具有 HH MM SS 格式 我不知道该怎么做 这是我的代码 数据是合成的 真实数据集要大得多 import panda