我在Jupyter中使用plotly处理世界Choropleth地图时遇到了麻烦。一旦该值超过1000,该地图就会将该国家/地区显示为灰色,因为没有数据。我仔细检查了国家代码,它们都是正确的。我认为问题与图例有关,因为它最多只能显示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()


这就是结果(地图已被切除,但是您知道了)
python - 一定值后,阴谋节律被切断-LMLPHP

最佳答案

我可以肯定问题出在您的数据源中。您可能是number的数据格式错误,或者您缺少某些国家/地区的数据,或者甚至是COUNTRY列中完全缺失的国家/地区。

我为什么能确定?

看看下面的代码片段产生的以下图:

情节:

python - 一定值后,阴谋节律被切断-LMLPHP

码:

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不属于色标。
GreenlandRussia等一些国家/地区为灰色。
数据源中也缺少这些国家。


gapminder['country'].unique()返回:

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()之类的工具仔细查看数据集,并让我们知道您的发现。

关于python - 一定值后,阴谋节律被切断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58508516/

10-09 02:04