gpt4 book ai didi

python - 通过绝对值而不是 0-1 绘制色标图

转载 作者:行者123 更新时间:2023-12-05 04:23:39 25 4
gpt4 key购买 nike

我有一张美国 map ,正在 Plotly Express 中绘制总统选举的胜率。我希望将 0 的获胜 margin 显示为白色,并将比例尺显示为红色/蓝色。但是,color_continuous_scale 关键字参数采用 0-1 的范围,并且 0 的获胜差值落在这个 0-1 范围内的位置在每次选举中都会有所不同。

是否有解决方法可以让我将 0 定义为白色,将极端值定义为红色/蓝色?

我曾尝试将 0 的获胜 margin 转换为 0 和 1 之间的分数,但这会随着每个选举周期而变化。

fig = px.choropleth(merged,
locationmode='USA-states',
locations='state_po',
animation_frame='year',
color='R_margin_x',
color_continuous_scale=[(0, 'blue'),
(merged['R_margin_x'].min()/(merged['R_margin_x'].min()-merged['R_margin_x'].max()), 'white'),
(1, 'red')],
scope='usa')
fig.show()

数据框的形式

party_simplified state_po  year   DEMOCRAT  LIBERTARIAN     OTHER  REPUBLICAN    D_pct_x   L_pct_x   O_pct_x    R_pct_x  R_margin_x    D_pct_y   L_pct_y   O_pct_y    R_pct_y  R_margin_y     R_lean
0 AK 2008 123594.0 1589.0 7173.0 193841.0 37.889374 0.487129 2.198978 59.424520 21.535146 52.761558 0.388418 1.488455 45.361569 -7.39999 28.935135
1 AL 2008 813479.0 NaN 19794.0 1266546.0 38.740434 NaN 0.942653 60.316913 21.576479 52.761558 0.388418 1.488455 45.361569 -7.39999 28.976468
2 AR 2008 422310.0 4776.0 21514.0 638017.0 38.864660 0.439529 1.979906 58.715904 19.851245 52.761558 0.388418 1.488455 45.361569 -7.39999 27.251234
3 AZ 2008 1034707.0 12555.0 16102.0 1230111.0 45.115251 0.547423 0.702079 53.635248 8.519997 52.761558 0.388418 1.488455 45.361569 -7.39999 15.919987
4 CA 2008 8274473.0 67582.0 208064.0 5011781.0 61.012638 0.498323 1.534180 36.954859 -24.057780 52.761558 0.388418 1.488455 45.361569 -7.39999 -16.657790

最佳答案

在 plotly 中,您可以通过连续尺度的中点:

color_continuous_scale=px.colors.sequential.RdBu, 
color_continuous_midpoint=0.0

RdBu 刻度从红色变为白色再变为蓝色。通过传递 color_continuous_midpoint=0.0,您可以指定 0.0 在刻度的中间,即白色。其他颜色将相应确定。如果您使用自定义连续色标,情况也是如此。

关于python - 通过绝对值而不是 0-1 绘制色标图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73677424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com