如何调整美国最低工资Choropleth地图的图例顺序与标题?
解决美国各州最低工资地图的图例排序与标题问题
核心修改点
- 固定图例顺序:将工资区间列转为有序分类,强制Plotly按指定升序渲染图例
- 修改图例标题:通过参数直接替换默认的"color"为描述性标题
修改后的完整代码
import plotly.express as px import plotly.graph_objects as go import pandas as pd # 定义工资区间的升序顺序 wage_order = [ '$7.25-8', '$8-9', '$9-10', '$10-11', '$11-12', '$12-13', '$13-14', '$14-15', '$15-16', '$17-18', 'No state minimum wage' ] # 将工资区间列转为有序分类 df['wage_cat'] = pd.Categorical(df['wage_cat'], categories=wage_order, ordered=True) fig = px.choropleth( locations=df['state'], locationmode='USA-states', color=df['wage_cat'], color_discrete_map={ '$7.25-8':'#e0e6f6', '$8-9':'#c1ccee', '$9-10':'#a2b3e5', '$10-11':'#8399dd', '$11-12':'#6480d4', '$12-13':'#4566cb', '$13-14':'#3353b7', '$14-15':'#2a4598', '$15-16':'#223779', '$17-18':'#19295A', 'No state minimum wage':'#f9fafd' }, # 修改图例标题 labels={'color': '最低工资区间'} ) fig.update_layout( title_text='State Minimum Wage as of 1-1-24', geo = dict( scope='usa', projection=go.layout.geo.Projection(type = 'albers usa'), showlakes=True, lakecolor='rgb(255, 255, 255)' ) ) fig.show()
关键说明
- 有序分类处理:通过
pd.Categorical指定categories和ordered=True,让Plotly识别区间的顺序关系,不再按默认规则排序 - 图例标题修改:
labels参数可以映射颜色字段的显示名称,直接替换默认的"color"为更清晰的"最低工资区间" - 依赖补充:代码中补充了
plotly.graph_objects和pandas的导入,避免原代码中go.layout.geo.Projection的报错问题
内容的提问来源于stack exchange,提问作者Gry
相关产品推荐
相关产品推荐

