如何修改Plotly动画条形图所有帧的条形颜色?
解决Plotly动画条形图所有帧统一修改颜色的问题
有两种可行方法可以让动画条形图的所有帧都显示为绿色:
方法一:创建图表时直接指定颜色(推荐)
使用Plotly Express的color_discrete_sequence参数,一次性为所有帧的条形设置颜色,代码更简洁直观:
import plotly.express as px fig = px.bar(df, x="x", y="Y", animation_frame="Year_slider", color_discrete_sequence=['green']) fig.show()
方法二:遍历所有动画帧修改颜色
如果已经创建好图表,可以通过遍历fig.frames中的每一个帧,修改其内部数据的标记颜色,同时别忘了修改初始显示的trace:
import plotly.express as px fig = px.bar(df, x="x", y="Y", animation_frame="Year_slider") # 修改初始显示的条形颜色 fig.update_traces(marker_color='green') # 遍历所有动画帧,修改每个帧的条形颜色 for frame in fig.frames: frame.data[0].marker.color = 'green' fig.show()
原方法仅修改第一帧的原因
fig.update_traces()默认仅对图表初始状态的trace生效,而动画的每一个年份滑块对应的帧,都包含独立的data对象,所以需要单独遍历修改每个帧的颜色才能覆盖所有状态。
内容的提问来源于stack exchange,提问作者Learning
相关产品推荐
相关产品推荐

