Цветовая карта на основе фрейма данных со значениями количества стран

#python #plotly

Вопрос:

У меня есть фрейм данных под названием страна, который содержит код страны и количество частот для стран.

код страны частота
0 США 17600
1 cn 8572
2 кр. 1121
3 Джей Пи 299
4 DE 199

Я написал код для построения распределения стран на карте мира:

 import plotly.express as px

np.random.seed(12)
gapminder = country
gapminder['counts'] = np.random.uniform(low=100000, high=200000, size=len(gapminder)).tolist()

fig = px.choropleth(gapminder, locations="country_code",
                    color="frequency", 
                    hover_name="country_code",
                    color_continuous_scale=px.colors.sequential.Blues)

fig.show()
 

Результат, который я получил:

Выходные данные

Что-то не так с кодом, я не могу найти причину, по которой распределение вообще не отображается на карте. Не могли бы вы, пожалуйста, помочь мне исправить это? Спасибо!

Ответ №1:

На карте choroplethmap на графике необходимо указать, в каком формате представлены данные о названии страны.

режим местоположения: Один из «ISO-3», «штаты США» или «названия стран» Определяет набор местоположений, используемых для сопоставления записей в locations регионах на карте.

Столбец Название страны представляет собой аббревиатуру из двух букв, поэтому его необходимо преобразовать в аббревиатуру из трех букв. Мне пришлось исправить это вручную, потому что у меня было небольшое количество данных.

 import pandas as pd
import numpy as np
import io

data = '''
 country_code frequency
0 USA 17600
1 CHN 8572
2 KOR 1121
3 JPN 299
4 DNK 199
'''

country = pd.read_csv(io.StringIO(data), delim_whitespace=True)

import plotly.express as px

np.random.seed(12)
gapminder = country
gapminder['counts'] = np.random.uniform(low=100000, high=200000, size=len(gapminder)).tolist()

fig = px.choropleth(gapminder, locations="country_code",
                    locationmode='ISO-3',
                    color="frequency", 
                    hover_name="country_code",
                    color_continuous_scale=px.colors.sequential.Blues)

fig.show()
 

введите описание изображения здесь

Комментарии:

1. Если мой ответ помог вам, пожалуйста, примите его как правильный ответ. Нажмите на галочку под нижним треугольником.