如何将含毫秒级Epoch时间戳的Pandas列设为Plotly的Datetime X轴
带毫秒Epoch时间戳转Datetime并设置为Plotly X轴的解决方案
步骤1:转换Epoch毫秒时间戳为Datetime类型
因为你的时间戳是带毫秒的Epoch格式,转换时必须指定unit='ms'参数,明确告诉Pandas这是毫秒级时间戳。假设你的DataFrame名为df,存储时间戳的列名为timestamp,代码如下:
import pandas as pd # 转换时间戳列 df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
步骤2:用Plotly绘制时间序列
转换完成后,直接将处理后的timestamp列指定为X轴即可。以下是两种常用Plotly绘图方式的示例:
方式1:Plotly Express(简洁快速)
import plotly.express as px fig = px.line(df, x='timestamp', y=['序列1列名', '序列2列名']) fig.show()
方式2:Plotly Graph Objects(自定义性更强)
import plotly.graph_objects as go fig = go.Figure() # 添加第一条序列 fig.add_trace(go.Scatter(x=df['timestamp'], y=df['序列1列名'], name='序列1')) # 添加第二条序列 fig.add_trace(go.Scatter(x=df['timestamp'], y=df['序列2列名'], name='序列2')) fig.show()
完整流程示例代码
从创建DataFrame到完成绘图的完整参考代码:
import pandas as pd import plotly.express as px # 模拟你的三个输入列表 timestamp_list = [1620000000000, 1620000010000, 1620000020000] # 毫秒级Epoch时间戳 series1 = [10, 20, 30] series2 = [15, 25, 35] # 创建DataFrame df = pd.DataFrame({ 'timestamp': timestamp_list, '序列1': series1, '序列2': series2 }) # 转换时间戳列 df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms') # 生成可视化图表 fig = px.line(df, x='timestamp', y=['序列1', '序列2']) fig.show()
内容的提问来源于stack exchange,提问作者intrigued_66
相关产品推荐
相关产品推荐

