Заговор Choropleth обрезается после определенного значения - PullRequest
1 голос
/ 22 октября 2019

У меня были проблемы с картой мира, используя сюжет в Jupyter. Как только значение становится больше 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()

И вот результат (карта вроде как обрезана, но вы поняли) Plot

1 Ответ

1 голос
/ 23 октября 2019

Я почти уверен, что проблема в вашем источнике данных. У вас либо неверный формат данных для number, либо у вас отсутствуют данные по некоторым странам, либо даже страны, которые полностью отсутствуют в столбце COUNTRY.

Почему я уверен?

Посмотрите на следующий график, созданный фрагментом ниже:

Сюжет:

enter image description here

Код:

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()

С информацией, имеющейся у меня до сих пор, приходит на ум несколько вещей:

  1. Grey isне входит в цветовую шкалу.
  2. Некоторые страны, такие как Greenland и Russia, имеют серый цвет.
  3. Эти страны также отсутствуют в источнике данных.

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(), и сообщить нам, что вы найдете.

...