如何在Python Plotly美国州级热力图中为指定州添加红色粗边框?
在Plotly美国州热力图中为指定州添加红色粗边框
要给满足特定条件的州添加红色粗边框,你可以在现有热力图基础上叠加一个新的地理轨迹层,用go.Scattergeo绘制目标州的边界。具体实现如下:
步骤1:筛选目标州
先从数据框DF中提取符合你需求的州,示例以“人均生物柴油消耗量超过5加仑”为例:
# 替换成你的实际筛选条件 target_states = DF[DF['2020 Per Capita BD Consumption (gal/person)'] > 5]['State'].tolist()
步骤2:整合完整代码
将边框轨迹添加到你已有的热力图中,完整代码如下:
import plotly.express as px import plotly.graph_objects as go # 原始热力图生成代码 fig_consump_percap = px.choropleth(DF, locations='State', locationmode="USA-states", scope="usa", color='2020 Per Capita BD Consumption (gal/person)', color_continuous_scale="algae", ) # 筛选目标州(替换为你的实际条件) target_states = DF[DF['2020 Per Capita BD Consumption (gal/person)'] > 5]['State'].tolist() # 添加红色粗边框轨迹 fig_consump_percap.add_trace(go.Scattergeo( locations=target_states, locationmode='USA-states', scope='usa', fill='none', # 仅显示边框,不覆盖原热力图颜色 line=dict(color='red', width=3), # 红色粗边框,可调整width值改变粗细 hoverinfo='skip' # 禁用该轨迹的hover提示,避免干扰原热力图交互 )) # 你的布局更新代码 fig_consump_percap.update_layout( title_text = '2020 Per Capita Biodiesel Consumption by State', title_font_family="Times New Roman", title_font_size = 22, title_font_color="black", title_x=0.45, margin={"r":50,"t":50,"l":50,"b":50}, legend=dict( yanchor="top", y=0.5, xanchor="left", x=0.5 )) fig_consump_percap.show()
关键细节说明
- 若你需要标记固定的几个州,直接将
target_states设为州缩写列表即可,比如['CA', 'TX', 'IA'] - 调整
line参数中的width值可以改变边框粗细,color可替换为其他颜色代码 hoverinfo='skip'确保原热力图的hover提示不受新轨迹干扰
内容的提问来源于stack exchange,提问作者Adam Sibal
相关产品推荐
相关产品推荐

