如何在散点图的 x 轴上绘制每分钟的时间

2024-02-05

为 1 秒采样数据设置分钟小刻度:OverflowError: int too big to convert

考虑这个数据帧,采样间隔为 1 秒,持续时间约为 30 分钟:

import matplotlib.pyplot as plt
from matplotlib.dates import MinuteLocator
import pandas as pd

ndex = pd.date_range('2021-08-01 07:07:07', '2021-08-01 07:41:12', freq='1S', name='Time') 
df = pd.DataFrame(data=np.random.randint(1, 100, len(ndex)), index=ndex, columns=['A'])

现在我们绘制它:

fig, ax = plt.subplots()
df.plot(color='red', marker='x', lw=0, ms=0.2, ax=ax)

Which creates a plot without any complaints: time vs randint

现在我希望每分钟都有轻微的滴答声。

我试过这个:

ax.xaxis.set_minor_locator(MinuteLocator())

但这失败了OverflowError: int too big to convert


  • pandas.DataFrame.plot https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html uses matplotlib as the default plotting backend, but it encodes date ticks as unix timestamps, which results in OverflowError: int too big to convert.
    • 这里默认的是kind='line', but marker='x', lw=0, ms=0.2在OP中用来制作一个hacky散点图。
  • pandas.DataFrame.plot.scatter https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.scatter.html将正常工作。
  • Using matplotlib.pyplot.scatter https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.scatter.html will work as expected.
    • matplotlib: Date tick labels https://matplotlib.org/stable/gallery/text_labels_and_annotations/date.html
      • Matplotlib 日期绘图是通过将日期实例转换为自纪元以来的天数(默认为 1970-01-01T00:00:00)来完成的
  • seaborn.scatterplot https://seaborn.pydata.org/generated/seaborn.scatterplot.html will also work:
    • sns.scatterplot(x=df.index, y=df.A, color='red', marker='x', ax=ax)
  • 测试于python 3.8.11, pandas 1.3.2, matplotlib 3.4.3, seaborn 0.11.2

matplotlib.pyplot.scatter

  • 额外的格式具有删除月份的效果('01')将在刻度标签中的时间之前(例如'%m %H:%M').
import matplotlib.dates as mdates
import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(25, 6))
ax.scatter(x=df.index, y=df.A, color='red', marker='x')

hourlocator = mdates.HourLocator(interval=1)  # adds some extra formatting, but not required
majorFmt = mdates.DateFormatter('%H:%M')  # adds some extra formatting, but not required

ax.xaxis.set_major_locator(mdates.MinuteLocator())

ax.xaxis.set_major_formatter(majorFmt)  # adds some extra formatting, but not required
_ = plt.xticks(rotation=90)

pandas.DataFrame.plot.scatter

  • Also pandas.DataFrame.plot with kind='scatter'
    • ax = df.reset_index().plot(kind='scatter', x='Time', y='A', color='red', marker='x', figsize=(25, 6), rot=90)
# reset the index so Time will be a column to assign to x
ax = df.reset_index().plot.scatter(x='Time', y='A', color='red', marker='x', figsize=(25, 6), rot=90)
ax.xaxis.set_major_locator(mdates.MinuteLocator())

  • 注意两种方法产生的 xticks 的差异

pandas.DataFrame.plot xticks

ax = df.plot(color='red', marker='x', lw=0, ms=0.2, figsize=(25, 6))

# extract the xticks to see the format
ticks = ax.get_xticks()
print(ticks)
[out]:
array([1627801627, 1627803672], dtype=int64)

# convert the column to unix format to compare
(df.index - pd.Timestamp("1970-01-01")) // pd.Timedelta('1s')

[out]:
Int64Index([1627801627, 1627801628, 1627801629, 1627801630, 1627801631,
            1627801632, 1627801633, 1627801634, 1627801635, 1627801636,
            ...
            1627803663, 1627803664, 1627803665, 1627803666, 1627803667,
            1627803668, 1627803669, 1627803670, 1627803671, 1627803672],
           dtype='int64', name='Time', length=2046)

matplotlib.pyplot.scatter xticks

fig, ax = plt.subplots(figsize=(25, 6))
ax.scatter(x=df.index, y=df.A, color='red', marker='x')

ticks2 = ax.get_xticks()
print(ticks2)

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

如何在散点图的 x 轴上绘制每分钟的时间 的相关文章

  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • 在 Sphinx 文档中*仅*显示文档字符串?

    Sphinx有一个功能叫做automethod从方法的文档字符串中提取文档并将其嵌入到文档中 但它不仅嵌入了文档字符串 还嵌入了方法签名 名称 参数 我如何嵌入only文档字符串 不包括方法签名 ref http www sphinx do
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • 如何获取MemberInfo的值?

    我如何获得 a 的值MemberInfo目的 Name返回变量的名称 但我需要该值 我认为你可以这样做FieldInfo但我没有代码片段 如果你知道如何做到这一点 你可以提供一个代码片段吗 Thanks 虽然我总体上同意 Marc 关于不反
  • 数据导入期间超出 Fuseki GC 开销限制

    我正在尝试在启动时将 LinkedMDB 610 万个三元组 导入到我的本地版本的 jena fuseki 中 path to fuseki server file path to linkedmdb nt ds 它运行了一分钟 然后因以下
  • Java:字符串分割

    我有以下字符串 Mr John Smith Dickson lt email protected cdn cgi l email protection gt 我想把它分成三个部分 第1部分 先生第二部分 约翰 史密斯 迪克森第三部分 电子邮
  • 找出特定整数有多少个二进制数字[重复]

    这个问题在这里已经有答案了 可能的重复 计算快速对数以 2 为底的上限 https stackoverflow com questions 3272424 compute fast log base 2 ceiling 在 C C 中 找出
  • 页面性能:从 CDN 加载多个库脚本或将这些库组合并缩小为从服务器下载的一个文件?

    我了解从 CDN 加载 jQuery 等大型通用库的优势 但是较小的插件和库帮助程序 例如 jQuery ui 或 bootstrap 及其帮助程序 又如何呢 我的网站大约有 10 12 个 我是否应该从 cdnjs 中单独选择它们并获得
  • 在 erb 模板中嵌入 ejs 模板

    我正在构建一个 javascript 重的 Rails 3 应用程序 它使用 underscore js 它具有构建在 ejs 之上的非常优雅的模板机制 http embeddedjs com http embeddedjs com 问题
  • Flex:在动作脚本中实现经典的柯里函数?

    在 ActionScript 中以良好的语法实现经典柯里化函数的最佳方法是什么 我试过了 Function prototype curry function return helloWorld trace function void cur
  • VBA 中的 Powerpoint 幻灯片计数变量

    我正在用 vba 创建一个 Powerpoint 我的计划是设置代码 使每个子例程创建特定的幻灯片 但是 我需要将幻灯片编号传递给每个子例程 以便它在正确的位置创建正确的幻灯片 我无法定义 excel vba 中的 Slides Count
  • 在Python中通过FTP代理与ftplib连接?

    我正在尝试从 FTP 下载文件 在家里工作正常 但是当我通过公司网络运行时就无法工作 我知道与代理有关 我看过一些关于 Python 中代理问题的帖子 我尝试建立与代理的连接 url 工作正常 但连接 FTP 时失败 有谁知道如何做到这一点
  • 如何在Docker中支持组播网络

    我在docker中遇到了一个关于网络配置的大问题 情况是这样的 1 我的服务器上有两个 eth eth0 和 eth1 eth0 flags 4163
  • Datareader 在 VS 中没有返回结果,但存储过程在 Sql Server 中返回多个结果集

    我在 Visual Studio 2008 中从数据读取器检索结果时遇到问题 我在同一个数据库中有多个存储过程 我能够从那些不接收输入参数的值中检索值 但是 当我在带有输入参数的存储过程上使用 executreReader 方法时 我得到一
  • MySQL IN 子句是否多次执行子查询?

    给定 MySQL 中的 SQL 查询 SELECT FROM tableA WHERE tableA id IN SELECT id FROM tableB MySQL是否执行子查询SELECT id FROM tableB每行多次tabl
  • 有关 OpenCL 内核编程的教程或书籍? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我认为这个问题足够具体 只是为了说清楚 我不是在寻找参考 而是在寻找教程 我对内核编程方面特别感兴趣 市
  • 如何修复因字节计数长度不正确而损坏的序列化字符串?

    我使用 Hotaru CMS 和图像上传插件 如果我尝试将图像附加到帖子中 则会收到此错误 否则不会出现错误 unserialize function unserialize 偏移处错误 有问题的代码 错误点与 一致 Retrieve su
  • i18next 显示键而不是值

    I have translation json文件输入 locales en app name Example App In html 我有 a href In js document ready function var language
  • Castle:如何在日志拦截器中获取正确的 ILogger?

    如果您在温莎城堡中使用 LoggingFacility 如果您的类中有可选的记录器依赖项 城堡可以将记录器注入其中的 ILogger 属性 容器将自动解析与您的类关联的记录器 但是如果我想使用AOP 拦截器方法 来实现日志记录 我基本上想写
  • SQL 2005 - 多次指定列

    尝试在 SQL 2005 中运行此查询时出现以下错误 SELECT tb FROM SELECT FROM vCodesWithPEs INNER JOIN vDeriveAvailabilityFromPE ON vCodesWithPE
  • 在 ngx-toastr 中找不到模块

    我找不到答案 ERROR in node modules ngx toastr fesm5 ngx toastr js Module not found Error Can t resolve Users vasanthan Mean pr
  • 使用 JPanel 作为 JTable 单元格编辑器时获取焦点问题

    我有一个单元格编辑器 其中包含一个小按钮 可以双击该按钮来弹出编辑对话框 然后是一个可用于内联编辑值的文本字段 需要弹出窗口才能编辑其他值 仅允许编辑第一个显示在 JTable 中 当用户单击字段时 一切正常 但如果他们使用 Tab 键进入
  • 如何在散点图的 x 轴上绘制每分钟的时间

    为 1 秒采样数据设置分钟小刻度 OverflowError int too big to convert 考虑这个数据帧 采样间隔为 1 秒 持续时间约为 30 分钟 import matplotlib pyplot as plt fro