【问题标题】:Pandas - Label x-axis of time series plot with column namesPandas - 用列名标记时间序列图的 x 轴
【发布时间】:2023-03-12 20:39:01
【问题描述】:

我有一个数据框,它在标题中包含日期作为索引和时间。已选择的日期适用于澳大利亚的夏季月份,并格式化为日期时间。时间范围为 24 小时周期,分辨率为 30 分钟。我把时间作为字符串类型保持不变。

前五行显示在下面的链接中:

first 5 rows of dataframe

我遇到的问题是在绘制数据框时。我似乎无法用每列的名称标记 x 轴 -> 在我的情况下,24 小时内的 30 分钟间隔时间(在下面的链接中查看)。该图仅在 0:30、5:30、10:30、15:30 和 20:30 插入时间标签时绘制。

time-series plot 1

如果我添加刻度线,绘图会将轴上的打印标签向左挤压,并在​​它们之后添加刻度线,但不在这些标签之间。在下面的链接中查看。

time-series plot 2

我想知道这是因为我没有将时间转换为日期时间格式还是因为其他原因。非常感谢您对此的一些见解,并在如何使用所有列名正确标记 x 轴方面获得一些帮助。

【问题讨论】:

  • 嗨。只要有可能,请将代码和数据示例复制/粘贴到帖子中。这使得答案更容易使用提供的示例来测试和展示建议的解决方案

标签: python pandas plot header time-series


【解决方案1】:

由于 Pandas 使用 matplotlib 进行绘图,这主要是一个 matplotlib 问题。

matplotlib 中的默认设置是仅在主要刻度上具有刻度标签。因此,如果您指定所有刻度都是主要刻度,您希望得到您想要的:

from matplotlib import ticker
ax.xaxis.set_major_locator(ticker.MultipleLocator(1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2017-01-17
    相关资源
    最近更新 更多