You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Plotly中将Kraken OHLC数据的毫秒Epoch时间转为日期?

把Kraken的Epoch时间转成Plotly蜡烛图可读X轴日期

这问题我之前也碰到过!Plotly对数字类型的X轴默认直接显示数值,咱们只需要把Epoch时间转成Python的datetime类型,Plotly就会自动识别并显示友好的日期格式了,甚至还能自定义显示样式。

步骤1:转换Epoch时间为datetime

首先假设你用的是pandas DataFrame(Kraken的get_ohlc_data返回的ohlc应该是DataFrame),用pd.to_datetime()就能轻松转换。注意看你的Epoch是秒级还是毫秒级:

  • 如果是秒级(比如示例里的1599651300),用unit='s'
  • 如果是毫秒级,用unit='ms'

步骤2:修改代码并自定义日期格式(可选)

转换完时间后,Plotly会自动处理X轴显示,但如果想要更贴合你示例的10-Sep-2020 12:23格式,可以在Layout里设置xaxis.tickformat。

修改后的完整代码如下:

import pandas as pd
import plotly.graph_objects as go
from plotly.offline import plot

# 获取Kraken的OHLC数据
ohlc, last = k.get_ohlc_data("BCHEUR", 5)

# 转换Epoch时间为datetime(这里假设是秒级Epoch,根据实际情况调整unit)
ohlc['time'] = pd.to_datetime(ohlc['time'], unit='s')

# 绘制蜡烛图
candle = go.Candlestick(
    x=ohlc['time'],
    open=ohlc['open'],
    close=ohlc['close'],
    high=ohlc['high'],
    low=ohlc['low'],
    name="Candlesticks"
)
data = [candle]

# 自定义布局,设置X轴日期格式(可选)
layout = go.Layout(
    xaxis=dict(
        tickformat='%d-%b-%Y %H:%M',  # 对应示例的10-Sep-2020 12:23格式
        title='Date'
    ),
    yaxis=dict(title='Price (EUR)')
)

fig = go.Figure(data=data, layout=layout)
plot(fig)

关键说明

  • pd.to_datetime()是核心:把数字类型的Epoch转成datetime后,Plotly会自动启用日期轴的交互(比如缩放、hover显示详细日期)
  • tickformat的格式符参考Python的strftime规则:%d是日,%b是缩写月份,%Y是4位年份,%H:%M是小时分钟
  • 如果你的ohlc不是DataFrame,而是普通列表,可以用datetime.datetime.fromtimestamp()逐个转换后再传入Plotly

内容的提问来源于stack exchange,提问作者FabioDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 07:17:55