使用 DateFormatter 将开始日期重置为 1970 年

2024-01-16

我有一个数据框,其中索引是每个月的第一个日期,size列是该月的频率,例如

Using .index在数据帧上确认索引的类型是DatetimeIndex:

DatetimeIndex(['2006-12-01', ...],
              dtype='datetime64[ns]', name='created_at_month', length=175, freq=None)

Using .plot()在 DataFrame 上我可以每月生成一个折线图:

但是,它仅在 x 轴上每隔一年列出一次,我希望它在轴上列出每年。

我希望能够做到

ax.xaxis.set_major_locator(mdates.YearLocator(1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))

然而,这根本不输出任何标签。

如果我添加一个小格式化程序(ax.xaxis.set_minor_formatter(mdates.DateFormatter('%d %m %Y'))),我得到这个:

我在这里做错了什么导致日期改变?

相关版本有:

  • Matplotlib:3.3.4
  • 熊猫:1.2.4
  • 蟒蛇:3.8.8

据报道here https://stackoverflow.com/a/64356273/9214357, 因为某些原因pandas的情节显示了这个问题。
您可以通过替换来解决此问题pandas' 绘制matplotlib.pyplot.plot.
你可以采取这个答案 https://stackoverflow.com/a/62613876/9214357作为 x 轴上 2 个日期时间刻度的参考(月和年,或月和日,或日和小时,根据需要),在次要刻度和主要刻度处使用两个不同的轴。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np


df = pd.DataFrame({'created_at_month': pd.date_range(start = '2006-12-01', end = '2020-12-01', freq = 'MS')})
df['size'] = np.random.randint(0, 200, len(df))
df = df.set_index('created_at_month')


fig, ax = plt.subplots()

ax.plot(df.index, df['size'])

ax.xaxis.set_major_locator(mdates.YearLocator(base = 1, month = 1, day = 1))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))

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

使用 DateFormatter 将开始日期重置为 1970 年 的相关文章

随机推荐

  • git merge 应该忽略一个目录

    我在名为 reports 的目录中有大量数据 在与另一个分支进行 git merge 时 我在 reports 目录下的文件遇到很多冲突 我希望 git merge 忽略报告下的文件 换句话说 我想要来自主报告而不是来自实验室分支的所有数据
  • Makefile 依赖项可重用现有工件来重新制作通用目标

    这可能很简单 但我一直无法找到答案 我正在为嵌入式平台开发一个 gmake 系统 该系统有两个处理元件 每个元件都有自己的固件 称为 CoreA bin 和 CoreB 每个元件都有自己的依赖关系树 CoreB 的 make 系统来自第三方
  • WCF 错误处理

    Q如何在客户端获取原始异常 发生在服务器上 我正在使用自托管 WCF 服务和 C 4 并尝试设置适当的异常处理 我有一个看起来像这样的客户 private ServiceResponse PerformRemoteAction Servic
  • 等待表单加载完成

    是否有某种布尔值可以用来检查表单的实例是否已加载 或者等待表单加载 例如 While form loaded false Try do something catch do try catch so code won t barf 我不断收
  • Windows 上的 CMake -G Ninja 指定 x64

    我在 Windows 上使用 CMake 和 Ninja 生成器 cmake G Ninja 这使用默认的 Windows x86 工具链 如何使用 Ninja 生成器指定 x64 PS 我知道如何使用 Visual Studio 生成 x
  • C#中strtr php函数的转换

    需要将此 php 代码转换为 C strtr input 是否存在等效的 C 函数 Damith Rahul Nikate Willem van Rumpt 您的解决方案通常有效 有一些特殊情况会产生不同的结果 echo strtr hi
  • 如何将 vuetify 2.0 beta 安装到新的 vue cli 项目中?

    Vuetify 2 0 0 beta 0 刚刚发布 我想尝试一下并在新的 vue 测试应用程序中使用 但是当我尝试将其安装到一个全新的项目中时出现错误 这是我已采取的步骤 I use vue cli v3 8 2使用默认设置创建一个新项目
  • MonoTouch SecKeyChain.Add 返回 SecStatusCode.Param

    我正在尝试像这样保存记录 var testRecord new SecRecord SecKind GenericPassword CreationDate DateTime UtcNow MatchCaseInsensitive fals
  • 使用 free() 时内存使用量不会减少[重复]

    这个问题在这里已经有答案了 我正在编写独立于操作系统的无锁队列 到目前为止效果很好 但内存管理存在小问题 我不确定是 gcc 问题还是我的问题 问题 当元素添加到列表时 内存会增加 但当元素从列表中删除时 free elementPoint
  • Recyclerview - 顶部项目应与下一个项目重叠,依此类推

    我已经为这样的项目设置了负边距 public class ItemDecorator extends RecyclerView ItemDecoration private final int mSpace public ItemDecor
  • 如何为 WAI-ARIA 的加载动画添加标签?

    我正在努力解决网页上的一些可访问性问题 我有一个充当对话框的 div 并且在某个时刻显示一个包含加载动画和文本 工作 的 div 我不确定如何标记这两个项目 以便正确通知盲人用户有进度动画并且它正在工作 他应该等待 div style di
  • 斯坦福 CoreNLP 创建 edu.stanford.nlp.time.TimeExpressionExtractorImpl 时出错

    我正在尝试学习斯坦福 CoreNLP 库 我在发布的示例中使用 C https sergeytihon wordpress com 2013 10 26 stanford corenlp is available on nuget for
  • PHP 控制运算符 (@) 不起作用

    The 控制操作员 http php net manual en language operators errorcontrol php用于使所有警告 错误保持沉默 无论后果是什么 我想使用这个疯狂的工具 但我想我有一些奇怪的服务器配置 即
  • 如何在 Angular 2+ 的引导模式中创建谷歌自动完成?

    我正在使用角度谷歌地图 agm 我通过以下方式创建了谷歌自动完成功能 in html
  • 如何观察数据库的变化以更新LiveData

    我正在从以下位置迁移应用程序LoaderManager with Callbacks到一个实现使用ViewModel and LiveData 我想继续使用现有的SQLiteDatabase 主要实现工作正常 这Activity实例化Vie
  • Graphql,react-apollo如何在加载组件状态时传输变量以进行查询

    我有一个简单的反应组件 必须在用户询问时从服务器加载数据 问题是我不知道如何传输动态变量speakerUrl并在组件加载状态之前访问它 当然我可以从this props params 但是组件未加载 当我进行 graphql 查询时我无法访
  • 为什么嵌套订阅不好?

    我知道应该避免嵌套订阅并应该使用 rxjs 运算符 但是我发现的有关此问题的文章通常只是说嵌套订阅不好 而没有解释原因 除了说 可能会导致问题 我想知道是否有人可以帮忙解决这个问题 谢谢 很高兴您提出这个问题 因为这是一个常见问题 考虑类似
  • 将输入数据从 android 发送到 php

    这些代码在按下按钮后执行 我正在尝试将字符串数据发送到我的服务器中的 php 文件 但在我按下按钮后应用程序已停止 我可以知道这里有什么问题吗 非常感谢任何帮助 D HttpClient client new DefaultHttpClie
  • go-mysql:从 go 应用程序容器连接到 mysql 容器时不支持身份验证插件

    我正在将我的 linux docker 环境从我的 Mac 移植到我的笔记本电脑 我有 2 个 docker 镜像 一个是mysql latest数据库图像 另一个是go alpine应用程序服务器映像 在我的 Mac 上 我使用 bash
  • 使用 DateFormatter 将开始日期重置为 1970 年

    我有一个数据框 其中索引是每个月的第一个日期 size列是该月的频率 例如 Using index在数据帧上确认索引的类型是DatetimeIndex DatetimeIndex 2006 12 01 dtype datetime64 ns