Plotly Choropleth 在特定值后切断
Plotly Choropleth Cuts Off After Certain Value
我一直在使用 Jupyter 中的 plotly 绘制世界等值线图时遇到问题。一旦该值超过 1000,地图就会将该国家/地区变灰,因为 id 没有数据。我仔细检查了国家代码,它们都是正确的。我认为问题与图例有关,因为它最多只显示 1000,但我不确定如何更改它。我按照 https://plot.ly/python/choropleth-maps/ 上的文档找到了我现在所在的位置。任何帮助,将不胜感激。
这是我的数据的快照
number CODE COUNTRY
0 1146 USA United States
1 1450 CAN Canada
2 54 CRI Costa Rica
3 920 AUS Australia
到目前为止,这是我的代码
fig = go.Figure(data=go.Choropleth(
locations = df['CODE'],
locationmode = "ISO-3",
z = df['number'],
text = df['COUNTRY'],
colorscale = 'Reds'
))
fig.update_layout(title_text="McDonald's per Country")
fig.show()
这是结果(地图有点被截断了,但你明白了)
我很确定问题出在您的数据源上。您的 number
数据格式不正确,或者某些国家/地区的数据缺失,甚至 COUNTRY
列中完全缺失的国家/地区。
为什么我确定?
看看下面的代码片段生成的以下情节:
剧情:
代码:
import plotly.express as px
gapminder = px.data.gapminder().query("year==2007")
fig = px.choropleth(gapminder, locations="iso_alpha",
color="lifeExp", # lifeExp is a column of gapminder
hover_name="country", # column to add to hover information
color_continuous_scale=px.colors.sequential.Plasma)
fig.show()
根据我目前掌握的信息,我想到了以下几点:
Grey
不是色标的一部分。
- 少数国家如
Greenland
和 Russia
是灰色的。
- 数据源中也缺少这些国家。
gapminder['country'].unique()
returns:
array(['Afghanistan', 'Albania', 'Algeria', 'Angola', 'Argentina',
'Australia', 'Austria', 'Bahrain', 'Bangladesh', 'Belgium',
'Benin', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Brazil',
'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon',
'Canada', 'Central African Republic', 'Chad', 'Chile', 'China',
'Colombia', 'Comoros', 'Congo, Dem. Rep.', 'Congo, Rep.',
'Costa Rica', "Cote d'Ivoire", 'Croatia', 'Cuba', 'Czech Republic',
'Denmark', 'Djibouti', 'Dominican Republic', 'Ecuador', 'Egypt',
'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Ethiopia',
'Finland', 'France', 'Gabon', 'Gambia', 'Germany', 'Ghana',
'Greece', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Haiti',
'Honduras', 'Hong Kong, China', 'Hungary', 'Iceland', 'India',
'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Italy',
'Jamaica', 'Japan', 'Jordan', 'Kenya', 'Korea, Dem. Rep.',
'Korea, Rep.', 'Kuwait', 'Lebanon', 'Lesotho', 'Liberia', 'Libya',
'Madagascar', 'Malawi', 'Malaysia', 'Mali', 'Mauritania',
'Mauritius', 'Mexico', 'Mongolia', 'Montenegro', 'Morocco',
'Mozambique', 'Myanmar', 'Namibia', 'Nepal', 'Netherlands',
'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Norway', 'Oman',
'Pakistan', 'Panama', 'Paraguay', 'Peru', 'Philippines', 'Poland',
'Portugal', 'Puerto Rico', 'Reunion', 'Romania', 'Rwanda',
'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia',
'Sierra Leone', 'Singapore', 'Slovak Republic', 'Slovenia',
'Somalia', 'South Africa', 'Spain', 'Sri Lanka', 'Sudan',
'Swaziland', 'Sweden', 'Switzerland', 'Syria', 'Taiwan',
'Tanzania', 'Thailand', 'Togo', 'Trinidad and Tobago', 'Tunisia',
'Turkey', 'Uganda', 'United Kingdom', 'United States', 'Uruguay',
'Venezuela', 'Vietnam', 'West Bank and Gaza', 'Yemen, Rep.',
'Zambia', 'Zimbabwe'], dtype=object)
我建议您使用 df['CODE'].unique()
等工具仔细查看您的数据集,并让我们知道您的发现。
我一直在使用 Jupyter 中的 plotly 绘制世界等值线图时遇到问题。一旦该值超过 1000,地图就会将该国家/地区变灰,因为 id 没有数据。我仔细检查了国家代码,它们都是正确的。我认为问题与图例有关,因为它最多只显示 1000,但我不确定如何更改它。我按照 https://plot.ly/python/choropleth-maps/ 上的文档找到了我现在所在的位置。任何帮助,将不胜感激。 这是我的数据的快照
number CODE COUNTRY
0 1146 USA United States
1 1450 CAN Canada
2 54 CRI Costa Rica
3 920 AUS Australia
到目前为止,这是我的代码
fig = go.Figure(data=go.Choropleth(
locations = df['CODE'],
locationmode = "ISO-3",
z = df['number'],
text = df['COUNTRY'],
colorscale = 'Reds'
))
fig.update_layout(title_text="McDonald's per Country")
fig.show()
这是结果(地图有点被截断了,但你明白了)
我很确定问题出在您的数据源上。您的 number
数据格式不正确,或者某些国家/地区的数据缺失,甚至 COUNTRY
列中完全缺失的国家/地区。
为什么我确定?
看看下面的代码片段生成的以下情节:
剧情:
代码:
import plotly.express as px
gapminder = px.data.gapminder().query("year==2007")
fig = px.choropleth(gapminder, locations="iso_alpha",
color="lifeExp", # lifeExp is a column of gapminder
hover_name="country", # column to add to hover information
color_continuous_scale=px.colors.sequential.Plasma)
fig.show()
根据我目前掌握的信息,我想到了以下几点:
Grey
不是色标的一部分。- 少数国家如
Greenland
和Russia
是灰色的。 - 数据源中也缺少这些国家。
gapminder['country'].unique()
returns:
array(['Afghanistan', 'Albania', 'Algeria', 'Angola', 'Argentina',
'Australia', 'Austria', 'Bahrain', 'Bangladesh', 'Belgium',
'Benin', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Brazil',
'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon',
'Canada', 'Central African Republic', 'Chad', 'Chile', 'China',
'Colombia', 'Comoros', 'Congo, Dem. Rep.', 'Congo, Rep.',
'Costa Rica', "Cote d'Ivoire", 'Croatia', 'Cuba', 'Czech Republic',
'Denmark', 'Djibouti', 'Dominican Republic', 'Ecuador', 'Egypt',
'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Ethiopia',
'Finland', 'France', 'Gabon', 'Gambia', 'Germany', 'Ghana',
'Greece', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Haiti',
'Honduras', 'Hong Kong, China', 'Hungary', 'Iceland', 'India',
'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Italy',
'Jamaica', 'Japan', 'Jordan', 'Kenya', 'Korea, Dem. Rep.',
'Korea, Rep.', 'Kuwait', 'Lebanon', 'Lesotho', 'Liberia', 'Libya',
'Madagascar', 'Malawi', 'Malaysia', 'Mali', 'Mauritania',
'Mauritius', 'Mexico', 'Mongolia', 'Montenegro', 'Morocco',
'Mozambique', 'Myanmar', 'Namibia', 'Nepal', 'Netherlands',
'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Norway', 'Oman',
'Pakistan', 'Panama', 'Paraguay', 'Peru', 'Philippines', 'Poland',
'Portugal', 'Puerto Rico', 'Reunion', 'Romania', 'Rwanda',
'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia',
'Sierra Leone', 'Singapore', 'Slovak Republic', 'Slovenia',
'Somalia', 'South Africa', 'Spain', 'Sri Lanka', 'Sudan',
'Swaziland', 'Sweden', 'Switzerland', 'Syria', 'Taiwan',
'Tanzania', 'Thailand', 'Togo', 'Trinidad and Tobago', 'Tunisia',
'Turkey', 'Uganda', 'United Kingdom', 'United States', 'Uruguay',
'Venezuela', 'Vietnam', 'West Bank and Gaza', 'Yemen, Rep.',
'Zambia', 'Zimbabwe'], dtype=object)
我建议您使用 df['CODE'].unique()
等工具仔细查看您的数据集,并让我们知道您的发现。