在绘图中调整数据帧的小时列的 x 刻度

问题描述 投票:0回答:2

Plotted using Autoplotter in jupyter where hours are in countsplot of Timestamp Vs Temp

我有一个 csv 文件,其中包含一个名为“小时”的列。在plotly中绘制折线图的x轴时,它以计数的形式表示,例如

0K、50K、……..250K。频率好像是1

有没有办法根据时间戳来调整刻度?

提前致谢..

python graph plotly linegraph xticks
2个回答
0
投票
  • 您描述的时间范围为 250k,因此模拟了相同的
  • 您可以简单地将其转换为自纪元以来的纳秒数以使用时间戳轴
  • 已将两者绘制在具有两个 x 轴的同一张图上以进行演示
import plotly.graph_objects as go
import pandas as pd
import numpy as np
import plotly.express as px

df = pd.DataFrame(
    {
        "hours": range(1, 250 * 10 ** 3 + 1, 100),
        "value": np.linspace(1, 10, 2500) * np.random.uniform(0.9, 1.1, 2500),
    }
)
px.line(df, x="hours", y="value").update_traces(name="raw", showlegend=True).add_trace(
    go.Scattergl(
        x=(df["hours"] * 60 * 60 * 10 ** 9).astype("datetime64[ns]"),
        y=df["value"] + 2,
        name="epoch",
        xaxis="x2",
    )
).update_layout(xaxis2={"anchor": "y", "domain": [0.0, 1.0], "side": "top"})


0
投票

从文档中,您在布局中将 xaxis 的 dtick 字段指定为 3600000 毫秒。

xaxis=dict(
    tickformat="%-H",
    dtick=3_600_000,
),

关于 xaxis 属性的plotly 文档

如果轴

type
是“日期”,那么您必须将时间转换为毫秒。

© www.soinside.com 2019 - 2024. All rights reserved.