Plotly Express:在动画中使颜色条静态化

Plotly Express: Make colorbar static in animation

有一个类似的问题,但解决方案对我不起作用。可能是因为我通过 px 而不是 go.

生成地图

我正在尝试使颜色栏静态化,但我无法正确实现。我在跟踪中添加了 zzmaxzmin,但它导致了奇怪的行为。在此处提供的示例中,它使整个地图成为静态的。 (在我的原始数据框中,它在某些国家/地区显示错误值)我在这里做错了什么,任何指导将不胜感激。

import plotly.express as px

df = px.data.gapminder()

fig = px.choropleth(df, locations='iso_alpha', color='gdpPercap', animation_frame=df.year.astype(str),
                        projection ='equirectangular')
    
# fig.update_traces(z=df['lifeExp'],zmin=0, zmax=100)
# for idx,frame in enumerate(fig.frames):
#     frame.data[0].update(z=df['lifeExp'], zmin=0, zmax=100)
fig.show()

哦,好吧,在主函数调用中添加 range_color 并指定范围 (min,max) 就可以解决这个问题。我使用了 gdpPercap 特征本身的最小值和最大值,但也可以使用它们的其他值。

import plotly.express as px

df = px.data.gapminder()

fig = px.choropleth(df, locations='iso_alpha', color='gdpPercap', animation_frame=df.year.astype(str),
                        projection ='equirectangular', range_color=(min(df.gdpPercap), max(df.gdpPercap)))
fig.show()