Plotly Express动画折线图无线条显示问题求助
Plotly Express动画折线图无线条显示问题解决
问题描述
基于OHCLV格式的CSV文件,用Plotly Express制作动画折线图展示时间(Timestamp)与High值的关系,但图表未显示任何线条。
样本数据
Timestamp,Open,High,Low,Close,Volume 2024-04-08 00:30:00,69271,69358,69023,69023,8.19441635
所用代码
px.line(df, x="Timestamp", y="High", animation_frame="High", animation_group="Timestamp", range_y=[60000,70000], range_x=(100,10000000))
问题根源
- 动画参数逻辑错误:
animation_frame="High"将价格值作为动画帧,每个High值对应单独一帧,单帧仅一个数据点,无法形成折线;animation_group="Timestamp"也不符合动画分组的设计意图,分组是用来标识跨帧需保持关联的对象,此处无需设置。 - X轴范围设置错误:
range_x=(100,10000000)把时间轴设置为数值区间,而Timestamp是时间类型,这个范围完全偏离数据的时间区间,导致数据点被移出可视范围。
修复方案
方案1:时间递进式动画(多时间点数据适用)
先确保Timestamp为时间类型,再用时间字段作为动画帧,同时设置正确的时间范围:
import pandas as pd import plotly.express as px # 转换Timestamp为时间类型 df['Timestamp'] = pd.to_datetime(df['Timestamp']) # 生成动画折线图 fig = px.line(df, x="Timestamp", y="High", animation_frame="Timestamp", range_y=[60000,70000], range_x=[df['Timestamp'].min(), df['Timestamp'].max()]) fig.show()
方案2:静态折线图(无需动画)
如果仅需展示High随时间的变化趋势,直接移除动画参数即可:
import pandas as pd import plotly.express as px df['Timestamp'] = pd.to_datetime(df['Timestamp']) fig = px.line(df, x="Timestamp", y="High", range_y=[60000,70000]) fig.show()
内容的提问来源于stack exchange,提问作者Reza
相关产品推荐
相关产品推荐

