python中使用不带状态代码的plotly的Choropleth映射。

2024-09-30 20:27:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码在python中绘制choropleth映射。在

data = [dict(
    type="choropleth",
    autocolorscale= True,
    locations = df[statename],
    z = df[z].astype(float),
    locationmode = 'USA-states',
    text = df[state],
    marker = dict(
    line = dict (
    color = 'rgb(255,255,255)',
    width = 2
 )),
    colorbar = dict(title = title)
)]

layout = dict(title = title,
        geo=dict(scope="usa",showlakes = True,lakecolor = 'rgb(255, 255, 255)'))

iplot(go.Figure(data=data,layout=layout),validate=False)

是否可以仅使用状态名作为locations的输入来绘制映射,或者有必要使用两个字母的状态代码。当我使用州代码时,它可以工作,但当我使用州名称时,它只给我一个空地图。在


Tags: 代码truedfdatatitle状态type绘制
1条回答
网友
1楼 · 发布于 2024-09-30 20:27:09

可能有一种方法可以将传递给参数locationmode的值更改为使用状态名而不是状态代码。另外,如果有一个dataframe statesdf的列statesdf['state']包含状态名,则可以使用下面的代码从状态名创建状态代码:

state_codes = {
    'District of Columbia' : 'dc','Mississippi': 'MS', 'Oklahoma': 'OK', 
    'Delaware': 'DE', 'Minnesota': 'MN', 'Illinois': 'IL', 'Arkansas': 'AR', 
    'New Mexico': 'NM', 'Indiana': 'IN', 'Maryland': 'MD', 'Louisiana': 'LA', 
    'Idaho': 'ID', 'Wyoming': 'WY', 'Tennessee': 'TN', 'Arizona': 'AZ', 
    'Iowa': 'IA', 'Michigan': 'MI', 'Kansas': 'KS', 'Utah': 'UT', 
    'Virginia': 'VA', 'Oregon': 'OR', 'Connecticut': 'CT', 'Montana': 'MT', 
    'California': 'CA', 'Massachusetts': 'MA', 'West Virginia': 'WV', 
    'South Carolina': 'SC', 'New Hampshire': 'NH', 'Wisconsin': 'WI',
    'Vermont': 'VT', 'Georgia': 'GA', 'North Dakota': 'ND', 
    'Pennsylvania': 'PA', 'Florida': 'FL', 'Alaska': 'AK', 'Kentucky': 'KY', 
    'Hawaii': 'HI', 'Nebraska': 'NE', 'Missouri': 'MO', 'Ohio': 'OH', 
    'Alabama': 'AL', 'Rhode Island': 'RI', 'South Dakota': 'SD', 
    'Colorado': 'CO', 'New Jersey': 'NJ', 'Washington': 'WA', 
    'North Carolina': 'NC', 'New York': 'NY', 'Texas': 'TX', 
    'Nevada': 'NV', 'Maine': 'ME'}

statesdf['state_code'] = statesdf['state'].apply(lambda x : state_codes[x])

相关问题 更多 >