为什么我在 python 中的等值线图是空的?
Why is my choropleth map in python empty?
所以我正在尝试学习绘制等值线图。我使用了一个示例数据集,但它是空的。请你看看它并告诉我哪里出了问题,因为我已经交叉检查了语法并且不明白为什么它不显示我的数据。我已经包含了数据集头和我编写的代码,如下所示:
datia = dict(type = 'choropleth',
locations = df['Names'],
locationmode = 'USA-states',
colorscale= 'Portland',
text= df['Names'],
z=df['2010-11'],
colorbar = {'title':'Vaccine Coverage in percentage'})
layout = dict(title = 'Vaccine Coverage in percentage',
geo = {'scope':'usa'})
choromap = go.Figure(data = [datia],layout = layout)
iplot(choromap, validate=False)
您需要提供州缩写(DC、AL、...)而不是名称。
我遇到了同样的问题。更改后它起作用了。
您可以使用以下代码将名称转换为缩写
def convert_state_name(name):
cd=str(name)
us_state_abbrev = {
"Alabama":"AL"
"Alaska":"AK"
"Arizona":"AZ"
"Arkansas":"AR"
"California":"CA"
"Colorado":"CO"
"Connecticut":"CT"
"Delaware":"DE"
"Washington DC":"DC"
"Florida":"FL"
"Georgia":"GA"
"Hawaii":"HI"
"Idaho":"ID"
"Illinois":"IL"
"Indiana":"IN"
"Iowa":"IA"
"Kansas":"KS"
"Kentucky":"KY"
"Louisiana":"LA"
"Maine":"ME"
"Maryland":"MD"
"Massachusetts":"MA"
"Michigan":"MI"
"Minnesota":"MN"
"Mississippi":"MS"
"Missouri":"MO"
"Montana":"MT"
"Nebraska":"NE"
"Nevada":"NV"
"New Hampshire":"NH"
"New Jersey":"NJ"
"New Mexico":"NM"
"New York":"NY"
"North Carolina":"NC"
"North Dakota":"ND"
"Ohio":"OH"
"Oklahoma":"OK"
"Oregon":"OR"
"Pennsylvania":"PA"
"Rhode Island":"RI"
"South Carolina":"SC"
"South Dakota":"SD"
"Tennessee":"TN"
"Texas":"TX"
"Utah":"UT"
"Vermont":"VT"
"Virginia":"VA"
"Washington":"WA"
"West Virginia":"WV"
"Wisconsin":"WI"
"Wyoming":"WY"
return us_state_abbrev[cd]
df['STATE_CD'] = df.Names.apply(lambda x:convert_state_name(x))
最后,您可以将 locations=df['Names'] 替换为 locations=df['STATE_CD']
希望对您有所帮助。
所以我正在尝试学习绘制等值线图。我使用了一个示例数据集,但它是空的。请你看看它并告诉我哪里出了问题,因为我已经交叉检查了语法并且不明白为什么它不显示我的数据。我已经包含了数据集头和我编写的代码,如下所示:
datia = dict(type = 'choropleth',
locations = df['Names'],
locationmode = 'USA-states',
colorscale= 'Portland',
text= df['Names'],
z=df['2010-11'],
colorbar = {'title':'Vaccine Coverage in percentage'})
layout = dict(title = 'Vaccine Coverage in percentage',
geo = {'scope':'usa'})
choromap = go.Figure(data = [datia],layout = layout)
iplot(choromap, validate=False)
您需要提供州缩写(DC、AL、...)而不是名称。 我遇到了同样的问题。更改后它起作用了。 您可以使用以下代码将名称转换为缩写
def convert_state_name(name):
cd=str(name)
us_state_abbrev = {
"Alabama":"AL"
"Alaska":"AK"
"Arizona":"AZ"
"Arkansas":"AR"
"California":"CA"
"Colorado":"CO"
"Connecticut":"CT"
"Delaware":"DE"
"Washington DC":"DC"
"Florida":"FL"
"Georgia":"GA"
"Hawaii":"HI"
"Idaho":"ID"
"Illinois":"IL"
"Indiana":"IN"
"Iowa":"IA"
"Kansas":"KS"
"Kentucky":"KY"
"Louisiana":"LA"
"Maine":"ME"
"Maryland":"MD"
"Massachusetts":"MA"
"Michigan":"MI"
"Minnesota":"MN"
"Mississippi":"MS"
"Missouri":"MO"
"Montana":"MT"
"Nebraska":"NE"
"Nevada":"NV"
"New Hampshire":"NH"
"New Jersey":"NJ"
"New Mexico":"NM"
"New York":"NY"
"North Carolina":"NC"
"North Dakota":"ND"
"Ohio":"OH"
"Oklahoma":"OK"
"Oregon":"OR"
"Pennsylvania":"PA"
"Rhode Island":"RI"
"South Carolina":"SC"
"South Dakota":"SD"
"Tennessee":"TN"
"Texas":"TX"
"Utah":"UT"
"Vermont":"VT"
"Virginia":"VA"
"Washington":"WA"
"West Virginia":"WV"
"Wisconsin":"WI"
"Wyoming":"WY"
return us_state_abbrev[cd]
df['STATE_CD'] = df.Names.apply(lambda x:convert_state_name(x))
最后,您可以将 locations=df['Names'] 替换为 locations=df['STATE_CD']
希望对您有所帮助。