#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. Если мой ответ помог вам, пожалуйста, примите его как правильный ответ. Нажмите на галочку под нижним треугольником.