我使用以下代码绘制了一个动画条形图,但默认条形颜色是蓝色,我该如何更改它?
import plotly.express as px
fig = px.bar(df, x="x", y="Y",
animation_frame="Year_slider")
fig.show()
我已经尝试过:
fig.update_traces(marker_color='green')
这仅为第一个条形提供绿色,而不是随着年份滑块进一步移动的其余条形,我怎样才能使所有条形颜色为绿色而不是默认颜色?
plotly中的动画是通过为动画的每一帧创建数据来实现的,通过执行
print(fig.frames)
可以看到。图的组成由初始图数据(fig.data
)、布局信息(fig.layout
)和动画帧信息(fig.frames
)组成。所以不仅需要改变初始颜色,还需要改变动画帧。对于每一帧,更改条形图的颜色。您的数据未知,但出于说明目的,我通过修改参考中的examples来创建代码。
import plotly.express as px
data_Africa = px.data.gapminder().query("continent == 'Africa'")
fig = px.bar(data_Africa, x='country', y='pop', animation_frame='year')
fig.update_traces(marker_color='green')
for i,frame in enumerate(fig.frames):
fig.frames[i]['data'][0]['marker']['color'] = 'green'
fig.update_yaxes(range=[0, 100_000_000])
fig.show()