如何在Plotly中将毫秒级Epoch时间戳转换为可读日期时间?
解决Plotly中毫秒级Epoch时间戳的x轴格式化问题
你遇到的问题核心有两个:一是x轴类型设为linear导致日期解析失效,二是时间格式符使用错误。下面是修正方案:
关键修正点
- 将x轴类型改为
date:linear类型会把时间戳当作普通数值处理,只有设为date,Plotly才会将其解析为日期时间。 - 处理毫秒级时间戳:Plotly默认识别秒级Epoch时间戳,所以需要把毫秒值除以1000转换为秒级(或让Plotly自动识别毫秒,转换方式兼容性更稳妥)。
- 使用正确的格式符:格式符不需要重复字母,比如
%H表示小时,%M表示分钟,%S表示秒,而非%HH/%MM/%SS。
修正后的代码
import plotly.graph_objects as go # 把毫秒级时间戳转换为秒级 time_series = [ts / 1000 for ts in [1716693661000, 1716693662000, 1716693663000, 1716693664000]] prices = [20, 45, 32, 19] fig = go.Figure() fig.add_trace(go.Scatter(x=time_series, y=prices, yaxis='y')) # 设置x轴为日期类型,同时配置时间格式和滑动条 fig.update_layout(xaxis=dict( rangeslider=dict(visible=True), type="date", tickformat="%Y-%m-%d %H:%M:%S" )) fig.show()
补充说明
如果不想手动转换时间戳,也可以直接保留毫秒值,Plotly现在支持识别毫秒级Epoch,但转换为秒级的方式兼容性更好。另外,也可以用update_xaxes单独配置x轴:
fig.update_xaxes(type="date", tickformat="%Y-%m-%d %H:%M:%S")
内容的提问来源于stack exchange,提问作者intrigued_66
相关产品推荐
相关产品推荐

