Plotly绘制散点图时X轴日期仅显示年月 如何展示日时分?
Plotly时间轴粒度不足问题修复
问题现象
使用如下代码绘制时间维度散点图时,X轴默认仅展示年、月维度,未显示日、小时、分钟级时间信息:
fig = px.scatter(df, x="Date", y="char_count", trendline="ols") fig.show()
问题效果参考:
问题原因
Plotly 对时间轴的刻度有自动适配逻辑:会根据当前数据覆盖的总时间跨度自动选择刻度粒度和显示格式,当数据时间跨度较大时,会默认使用粗粒度的年/月刻度,不会主动展示细粒度时间信息。
修复方案
- 前置校验:先确认
Date列已被正确解析为Pandas的datetime类型,未转换时先执行类型转换:
import pandas as pd df["Date"] = pd.to_datetime(df["Date"])
- 绘图时通过
update_xaxes方法自定义X轴的刻度间隔、显示格式,按需配置到需要的时间粒度即可,参考代码如下:
import plotly.express as px fig = px.scatter(df, x="Date", y="char_count", trendline="ols") fig.update_xaxes( # dtick单位为毫秒,按需选择间隔: # 1天间隔:86400000;1小时间隔:3600000;1分钟间隔:60000 dtick=86400000, # tickformat为时间显示格式,%Y=年 %m=月 %d=日 %H=时 %M=分 tickformat="%Y-%m-%d %H:%M", # 刻度文字倾斜45度,避免细粒度下文字重叠 tickangle=-45 ) fig.show()
常用配置参考
- 按天展示:
dtick=86400000,格式可写为"%Y-%m-%d" - 按小时展示:
dtick=3600000,格式可写为"%Y-%m-%d %H:00" - 按分钟展示:
dtick=60000,格式可写为"%H:%M"
内容的提问来源于stack exchange,提问作者Bruhlickd
相关产品推荐
相关产品推荐

