美国各州地图显示不正确的数据和颜色编码
Choropleth us-states map showing incorrect data and color coding
我正在尝试按类型显示美国各州的医院。我使用的数据集在这里 https://www.kaggle.com/carlosaguayo/usa-hospitals
我正在使用 choropleth,这是我的代码。我基本上有一个医院类型的下拉列表,当 select 时,我得到了计数
@app.callback(Output('figure-1', 'figure'),
[Input('options-drop', 'value')])
def make_figure(varname):
mygraphtitle = f'Hospitals of {varname}'
mycolorscale = 'Blues'
mycolorbartitle = "Count"
data=go.Choropleth(
locations=df['STATE'],
locationmode = 'USA-states',
z = df[df["TYPE"] == varname]["STATE"].value_counts(),
colorscale = mycolorscale,
colorbar_title = mycolorbartitle,
)
fig = go.Figure(data)
fig.update_layout(
title_text = mygraphtitle,
geo_scope='usa',
width=1200,
height=800
)
return fig
我有 3 个关于 grpah 的问题
- 并未显示所有州的数据
- 几个州显示的数据不正确
- 即使对于那些数据不正确的州,颜色编码也不正确。医院人数较多的州以浅蓝色显示,而医院人数较少的州以深蓝色显示
你可以从下面的pandas中看到,我可以看出德克萨斯州只有65家关键医院,但美国地图显示计数为78家,即使是78家,德克萨斯州的颜色与其他医院较低的州。我哪里错了?
这个我没有在Dash环境下验证过,但是我相信操作是一样的。原因是您正在为要设置的整个数据框指定一个状态列。最简单的响应是定位过滤后的数据框。
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv('./data/Hospitals.csv')
varname = 'CRITICAL ACCESS'
filtered_df = df[df["TYPE"] == varname]["STATE"].value_counts().to_frame('value')
#print(filtered_df)
fig = go.Figure(data=go.Choropleth(
locations=filtered_df.index,
z = filtered_df['value'],
locationmode = 'USA-states',
colorscale = 'Blues',
colorbar_title = "Count",
))
fig.update_layout(
title_text = f'Hospitals of {varname}',
geo_scope='usa',
width=1200,
height=800
)
fig.show()
我正在尝试按类型显示美国各州的医院。我使用的数据集在这里 https://www.kaggle.com/carlosaguayo/usa-hospitals
我正在使用 choropleth,这是我的代码。我基本上有一个医院类型的下拉列表,当 select 时,我得到了计数
@app.callback(Output('figure-1', 'figure'),
[Input('options-drop', 'value')])
def make_figure(varname):
mygraphtitle = f'Hospitals of {varname}'
mycolorscale = 'Blues'
mycolorbartitle = "Count"
data=go.Choropleth(
locations=df['STATE'],
locationmode = 'USA-states',
z = df[df["TYPE"] == varname]["STATE"].value_counts(),
colorscale = mycolorscale,
colorbar_title = mycolorbartitle,
)
fig = go.Figure(data)
fig.update_layout(
title_text = mygraphtitle,
geo_scope='usa',
width=1200,
height=800
)
return fig
我有 3 个关于 grpah 的问题
- 并未显示所有州的数据
- 几个州显示的数据不正确
- 即使对于那些数据不正确的州,颜色编码也不正确。医院人数较多的州以浅蓝色显示,而医院人数较少的州以深蓝色显示
你可以从下面的pandas中看到,我可以看出德克萨斯州只有65家关键医院,但美国地图显示计数为78家,即使是78家,德克萨斯州的颜色与其他医院较低的州。我哪里错了?
这个我没有在Dash环境下验证过,但是我相信操作是一样的。原因是您正在为要设置的整个数据框指定一个状态列。最简单的响应是定位过滤后的数据框。
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv('./data/Hospitals.csv')
varname = 'CRITICAL ACCESS'
filtered_df = df[df["TYPE"] == varname]["STATE"].value_counts().to_frame('value')
#print(filtered_df)
fig = go.Figure(data=go.Choropleth(
locations=filtered_df.index,
z = filtered_df['value'],
locationmode = 'USA-states',
colorscale = 'Blues',
colorbar_title = "Count",
))
fig.update_layout(
title_text = f'Hospitals of {varname}',
geo_scope='usa',
width=1200,
height=800
)
fig.show()