绘制一天内具有不同时间戳和 datetime.time 格式的时间序列

2024-03-26

我有两个包含温度和光传感器读数的数据集。测量时间为 22:35:41 - 04:49:41。

此数据集的问题在于,当从一天到另一天(22:35:41 - 04:49:41)进行测量时,要根据 datetime.date 格式绘制测量值。绘图功能自动从 00:00 开始,并将 00:00 之前测量的数据放在绘图末尾。

import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

Temperature = pd.read_excel("/kaggle/input/Temperature_measurement.xlsx")
Light = pd.read_excel("/kaggle/input/Light_measurement.xlsx")

sns.lineplot(x="Time",y="Light", data = Light)
sns.lineplot(y="Temperature", x="Time", data = Temperature)
plt.show()

这是数据集的链接 https://www.kaggle.com/bjoernjostein/temperature-and-light-data

这是 Jupyter Notebook 的链接 https://www.kaggle.com/bjoernjostein/starter-temperature-and-light-data


首先,您需要将时间转换为 Pandas 时间戳。 Pandas 时间戳本身并不真正支持时间,它们会附加一个日期,但这很好,因为我们稍后会隐藏该部分。

我们还需要检测日期的变化,我们可以通过查看时间的回绕位置来做到这一点,我们可以通过查看比前一个时间短的时间来找到时间的变化。

我们可以计算累积的换行次数并将该日期数量添加到我们的时间戳中。

让我们定义一个函数来取datetime.time对象,将它们转换为本地 Pandas 时间戳(使用任意日期 1900-01-01,这是 Pandas 的默认日期)并根据换行调整日期(因此我们最终得到 1900-01-02 的最终时间) ):

def normalize_time(series):
    series = pd.to_datetime(series, format="%H:%M:%S")
    series += pd.to_timedelta(series.lt(series.shift()).cumsum(), unit="D")
    return series

现在让我们将其应用到我们的 DataFrame 中:

Light["Time"] = normalize_time(Light["Time"])
Temperature["Time"] = normalize_time(Temperature["Time"])

现在绘制数据看起来是正确的,并且时间是连续的。除了 X 刻度线的标签会尝试显示日期,这并不是我们真正关心的,所以让我们现在修复该部分。

我们可以使用 Matplotlib 的set_major_formatter与一个DateFormatter仅包含时间:

import matplotlib.dates

ax = plt.subplot()

sns.lineplot(x="Time", y="Light", data=Light)
sns.lineplot(x="Time", y="Temperature", data=Temperature)

ax.xaxis.set_major_formatter(
    matplotlib.dates.DateFormatter("%H:%M")
)

plt.show()

这每小时产生 X 个刻度,这似乎非常适合该数据集。

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

绘制一天内具有不同时间戳和 datetime.time 格式的时间序列 的相关文章

  • 属性错误:未找到下层;在 scikit-learn 中使用带有 CountVectorizer 的 Pipeline

    我有一个这样的语料库 X train this is an dummy example in reality this line is very long here is a last text in the training set 和一
  • 解析器生成

    我正在做一个项目软件抄袭检测 我打算用C语言来做这件事 因为我应该创建一个令牌生成器和一个解析器 但我不知道从哪里开始 任何人都可以帮助我解决这个问题 我创建了一个令牌数据库 并将令牌与我的程序分开 接下来我想做的就是比较两个程序以查明它是
  • 如何查找另一列的不同行中具有多个值的列值的总长度

    有没有办法找到同时有Apple和Strawberry的ID 然后求总长度 和只有苹果的ID 和只有草莓的IDS df ID Fruit 0 ABC Apple lt ABC has Apple and Strawberry 1 ABC St
  • 将这个使用 lambda 解包的元组从 Python 2 移植到 Python 3 的最 Pythonic 方法

    我有以下 Python 2 代码 它在 lambda 中解压元组 该 lambda 包含在 for 循环内 for lab lab pred length in zip labels labels pred sequence lengths
  • 在 Django 中上传文件

    我在 Django 1 6 版本 中上传文件时遇到问题 当我尝试做的时候new file data save 在我的views py 中我收到此错误 quiz patent 22 medical record 2 exams 处的属性错误
  • Python ttk.combobox 强制发布/打开

    我正在尝试扩展 ttk 组合框类以允许自动建议 我到目前为止的代码运行良好 但我想让它在输入一些文本后显示下拉列表 而不从小部件的输入部分移除焦点 我正在努力解决的部分是找到一种强制下拉的方法 在 python 文档中我找不到任何提及这一点
  • Python Subversion 包装器库

    在颠覆的文档 http svnbook red bean com en 1 7 svn developer usingapi html svn developer usingapi otherlangs有一个从 Python 使用 Subv
  • 使用 gin 索引和 sqlalchemy 返回排名搜索结果

    我为全文搜索设置了 GIN 索引 我想获取与搜索查询匹配的记录列表 按排名排序 记录与搜索查询的匹配程度 对于结果 我只需要记录及其列 不需要用于排序的实际排名值 我有以下查询 它运行良好并从我的 postgresql 数据库返回预期结果
  • 散景服务器获取鼠标位置

    我正在开发一个带有散景 0 12 2 的交互式应用程序 它根据特定的交互更新绘图 现在 我使用滑块来更改图中字形的位置 但实际上我想访问鼠标在特定图中的位置 数据集是一个多维矩阵 张量 密集数据 每个图在特定位置显示一个维度 如果我更改一个
  • 为什么 1.__add__(2) 不起作用? [复制]

    这个问题已经存在了 可能的重复 访问 python int 文字方法 https stackoverflow com questions 10955703 accessing a python int literals methods 在P
  • Seaborn 条形图条之间没有空格

    我使用下面的代码创建了一个 Seaborn 条形图 它来自https www machinelearningplus com plots top 50 matplotlib visualizations the master plots p
  • 显示多索引 pandas 数据帧的前 10 行

    我有一个多级索引 pandasDataFrame第一级在哪里year第二级是username 我只有一列已经按降序排序 我想显示每个索引级别 0 的前 2 行 我拥有的 count year username 2010 b 677 a 50
  • Google App Engine 开发服务器中的 PyCrypto“ImportError:无法导入名称 blockalgo”

    我有一个使用 PyCrypto 使用 AES 加密字符串的函数 当我在单元测试中调用该函数时 一切正常 在生产环境中 它也运行得很好 但是 在GAE开发服务器上调用该函数时 会抛出错误 ImportError 无法导入名称blockalgo
  • 鉴于我的代码是开源的并且我在服务器上运行,并且我接受近乎原始的代码,那么对我来说最糟糕的情况是什么?

    我正在研究几个案例 在这些案例中 接受近乎原始的代码会容易得多 所以 如果你不能使用 lambda 你能对表达式做的最糟糕的事情是什么 以及如何做 如果不能使用 import 那么对执行的代码最糟糕的情况是什么 如何使用 不能使用 X 扫描
  • 无法运行特定的 .pyc 文件

    使用编译在unix工作的python文件后 import py compile py compile compile server py 我在同一目录中获得 pyc 文件 但是当我尝试在 putty 中使用 server pyc 运行该文件
  • 将 numpy 记录数组转换为字典列表的有效方法

    如何转换下面的 numpy 记录数组 recs Bill 31 260 0 Fred 15 145 0 r rec fromrecords recs names name age weight formats S30 i2 f4 到字典列表
  • Python 中的数据可用性图表

    我想知道Python是否有一些东西可以绘制具有多个变量的时间序列的数据可用性 下面显示了一个示例 取自Visavail js 时间数据可用性图表 https github com flrs visavail 1 description 以下
  • PyTorch 中的交叉熵

    交叉熵公式 但为什么下面给出loss 0 7437代替loss 0 since 1 log 1 0 import torch import torch nn as nn from torch autograd import Variable
  • 多行 x 刻度标签

    我正在尝试制作类似于此 Excel 示例的图 我想知道 x 刻度标签上是否有第二层 例如 5 年统计摘要 我知道我可以使用制作多行刻度标签 n但我希望能够独立地转换这两个级别 这很接近 fig plt figure figsize 8 4
  • 仅在满足条件时添加到字典

    我在用urllib urlencode构建 Web POST 参数 但是有一些值我只想在除None为他们而存在 apple green orange orange params urllib urlencode apple apple or

随机推荐

  • 使用 bash 自动化点文件

    我想创建自己的自动点文件文件夹 我将使用 git 对我的点文件使用版本控制 但这与问题无关 我想要的只是符号链接中的所有文件和文件夹 dotfiles到我的主文件夹 由于我对 bash 一点都不擅长 所以我无法做到这一点 请在这件事上给予我
  • ravendb 结合搜索和Where

    我正在 C 中执行 raven 查询 并利用Where 和Search 扩展方法 我需要这两个功能 因为我只需要返回具有特定 Guid 字段的索引以及文本正文中存在的文本 不幸的是 Where 扩展方法似乎与 Search 扩展方法不兼容
  • Clojure 宏:根据条件将过滤后的映射和数量传递给其他宏

    defmacro action1 prn action1 start etype1 defmacro block bindings body let mapcat fn k v if symbol k k symbol name k v c
  • Arduino - 高效地迭代 C 数组

    我有以下数组 PROGMEM prog uint16 t show hide info 4216 8900 4380 580 500 600 500 580 1620 580 500 600 500 580 500 600 480 600
  • 将满足范围内的值的行复制到sheet2

    对于 Excel VBA 我是个新手 如果满足某些条件 我有一个任务将行从工作表 1 复制到工作表 2 在sheet1中 JY列中的值以MV列结尾 我希望您能帮我编写一个宏 将包含小于 1 的值的所有行复制到sheet2 一行可能有多个 例
  • 无法使用使用Python编写的Robot Framework自定义库

    创建了一个示例 Python 脚本 Elements py 其函数如下 from robot api deco import keyword keyword join two strings def join two strings arg
  • 通过 SNMP 访问路由表

    如果我尝试查找安装了 openWRT 的 Linksys WRT54G 的路由表 我需要哪个 MIB 那应该是MIB II SNMP 对象 ID OID 为 1 3 6 1 2 1 4 21 可转换为ip ipRouteTable 这对我在
  • 按组的 SQL 计数

    我必须遵循架构 Movie mvID title rating year Director directorID firstname lastname Genre mvID genre Direct mvID directorID 我需要知
  • 错误类“HTML”未找到 - Laravel 5.4

    我收到以下错误 未找到 HTML 类 查看 C WORK Software XamppOne htdocs APOSTXUI ContractorsClubField resources views includes header blad
  • 将表格添加到 ggplot 图

    我有剂量反应数据 df lt data frame dose c 10 0 625 2 5 0 15625 0 0390625 0 0024414 0 00976562 0 00061034 10 0 625 2 5 0 15625 0 0
  • 无法删除 Android Studio 中的目录

    当我运行项目时安卓工作室2 0它显示以下错误 错误 任务 app clean 执行失败 gt 无法删除 目录 XX build outputs apk 在 android studio 终端中 转到项目根目录并使用命令 gradlew cl
  • SQL Server:将多行数据合并为一行

    我想要做的是合并几行数据 以便从 Transact SQL 或 SSIS 中显示为单行 例如 MAKE REF ID Title Surname Forename DOB Add1 Postcode D 10 MR KINGSTON NUL
  • 如何让在 MacOS 上运行的 Flutter 项目成功使用 Firestore?

    我有一个简单的 Flutter 项目 它所做的只是连接到 Firestore 集合 提取一些文档并显示它们 这在 iOS 上运行良好 但是 当我尝试在 macOS 中运行它时 我无法检索文档 我没有看到任何例外 只是没有成功 我从最初的默认
  • 何时在 Angular 2 中使用 @angular 标签? [复制]

    这个问题在这里已经有答案了 我试图使用下面的代码来引导我的应用程序boot ts file import bootstrap from angular2 platform browser import ROUTER PROVIDERS fr
  • git Push 因 git-credential-winstore 失败

    我认为 git credential winstore 应用程序存在问题 我正在尝试存储凭据 以便不必每次都输入它们 我已经在一台计算机 我的个人笔记本电脑 上完成了此过程 并且运行完美 但是当我尝试在工作计算机上重复此过程时 它失败了 我
  • 使用 liquibase 创建双精度[]类型的列

    如何在postgresql数据库中使用liquibase创建双精度 双精度数组 类型的列
  • 在 FtpWebRequest 中设置端口

    我需要用户能够修改下载 FTP 信息的端口 但我找不到在 FtpWebRequest 中更改此端口的方法 该端口不是用于创建 Web 请求的 URI 的一部分吗 FtpWebRequest request FtpWebRequest Web
  • 在 VB.net 中读取 XML

    我在谷歌上搜索了大约一个小时 但没有运气 我想我也是一个很棒的谷歌用户 所以我在这里 我有一个用于程序设置的 XML 文件 它看起来像这样
  • Apollo:数据/突变道具未传递给组件

    我有以下带有查询和突变的组件 但我的组件没有接收数据和突变道具 我的代码中是否做错或遗漏了什么 虽然查询确实被执行 但它只是没有被传递下去 this props mutate 以及 this props data 未定义 class Res
  • 绘制一天内具有不同时间戳和 datetime.time 格式的时间序列

    我有两个包含温度和光传感器读数的数据集 测量时间为 22 35 41 04 49 41 此数据集的问题在于 当从一天到另一天 22 35 41 04 49 41 进行测量时 要根据 datetime date 格式绘制测量值 绘图功能自动从