Как построить карту Choropleth с помощью folium и geoJson с undentifed feature.id?

Я следую этому руководству, чтобы построить карту хороплет из Folium: https://notebook.community/python-visualization/folium/examples/GeoJSON_and_choropleth

from branca.colormap import linear

colormap = linear.OrRd_03.scale(
    ecuador['Confirmed cases'].min(),
    ecuador['Confirmed cases'].max())

ecuador_dict=ecuador.set_index('Provinces')['Confirmed cases']

fec_map= folium.Map(zoom_start=6, tiles="OpenStreetMap", control_scale=True, location=[latitude_ec, longitude_ec])
folium.GeoJson(geojson_ec,
               name='Confirmed cases',
               style_function=lambda feature: {
                'fillColor'= colormap(ecuador_dict[features['properties.dpa_despro']]),
                'color': 'black',
                'weight': 2,
                'dashArray': '5, 5'}
                ).add_to(fec_map)
fec_map

GeoJSON:

geojson_ec = {'type': 'FeatureCollection',
        'features': [{'type': 'Feature',
                      'properties': {'id_prov': 1,
                                     'dpa_provin': '01',
                                     'dpa_despro': 'AZUAY',
                                     'dpa_valor': 0,
                                     'dpa_anio': '2012',
                                     'rei_codigo': '05',
                                     'ren_codigo': '01',
                                     'pee_codigo': '593',
                                     'codigo': 1,
                                     'codigo_1': 1,
                                     'nombre': 'AZUAY',
                                     'pob_mas': 337044,
                                     'pob_fem': 375083,
                                     'pob_tot': 712127,
                                     'si_lee': 591470,
                                     'no_lee': 51920,
                                     'total': 643390,
                                     'analfabeti': 6.7,
                                     'promedio_e': 9.01,
                                     'pobres_nbi': 338073,
                                     'no_pobres': 361875,
                                     'pob_nopob_': 699948,
                                     'densidad': 85.7,
                                     'edad_media': 28.85,
                                     'cartodb_id': 1,
                                     'created_at': '2015-04-20T23:35:12Z',
                                     'updated_at': '2015-04-21T16:01:08Z',
                                     }}]}

Однако я получаю эту ошибку:

File "<ipython-input-131-1cdbb903e2f9>", line 7
    'fillColor'= colormap(ecuador_dict[features['properties.dpa_despro']]),
               ^
SyntaxError: invalid syntax

Пожалуйста, помогите мне понять руководство и установить правильную цветовую карту.

ПЕРЕМЕННЫЕ:

ecuador_dict=
Provinces
AZUAY                             10788.0
BOLÍVAR                            2120.0
CARCHI                             3080.0
CAÑAR                              2165.0
CHIMBORAZO                         2560.0
COTOPAXI                           4612.0
EL ORO                             6497.0
ESMERALDAS                         4324.0
GALÁPAGOS                           228.0
GUAYAS                            22588.0
IMBABURA                           4816.0
LOJA                               6375.0
LOS RÍOS                           4041.0
MANABÍ                            11464.0
MORONA SANTIAGO                    3015.0
NAPO                               1447.0
ORELLANA                           1972.0
PASTAZA                            2276.0
PICHINCHA                         60494.0
SANTA ELENA                        1796.0
SANTO DOMINGO DE LOS TSÁCHILAS     5322.0
SUCUMBÍOS                          2778.0
TUNGURAHUA                         6168.0
ZAMORA CHINCHIPE                   1582.0
Name: Confirmed cases, dtype: float64
<class 'pandas.core.series.Series'>

10788.0

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

Решение предложено - r-beginners:

fec_map= folium.Map(zoom_start=6, tiles="OpenStreetMap", control_scale=True, location=[latitude_ec, longitude_ec])
folium.GeoJson(geojson_ec,
               name='Confirmed cases',
               style_function=lambda feature: {
                'fillColor'= ecuador_dict[feature['properties']['dpa_despro']],
                'color': 'black',
                'weight': 2,
                'dashArray': '5, 5'}
                ).add_to(fec_map)
fec_map

Результат:

Файл, строка 5 'fillColor' = ecuador_dict [feature ['properties'] ['dpa_despro']], ^ SyntaxError: недопустимый синтаксис


person Rox    schedule 07.11.2020    source источник
comment
Чтобы устранить ошибку, попробуйте исправить ее следующим образом.style_function=lambda feature: {'fillColor': colormap(ecuador_dict[feature['properties']['dpa_despro']]   -  person r-beginners    schedule 07.11.2020
comment
Не работает: файл ‹ipython-input-51-7d5edc7d5a4f›, строка 5 'fillColor' = colormap (ecuador_dict [feature ['properties'] ['dpa_despro']]), ^ SyntaxError: недопустимый синтаксис   -  person Rox    schedule 07.11.2020
comment
Исправления, показанные в комментариях, были внесены и выполнены с данными, представленными в вашем вопросе. Вопрос дополнен исправленными данными. Попробуйте запустить его с исправленным кодом. Пожалуйста, поправьте меня, если мое исправление неверно.   -  person r-beginners    schedule 08.11.2020
comment
Я добавил в ход и ту ошибку, которая мне показывает. Я не работал с новичками. Помогите, пожалуйста.   -  person Rox    schedule 08.11.2020
comment
Есть пара проблем: во-первых, неверно указаны данные geojson. Во-вторых, ecuador_dict получает значение, а в-третьих, даже если вы получаете цвет заливки, данные многоугольника, представляющие область «AZUAY», не находятся в «geojson». Их нет в.   -  person r-beginners    schedule 08.11.2020
comment
В моей среде colormap(ecuador_dict[geojson_ec['features'][0]['properties']['dpa_despro']]) получает цвет '# fed9b0ff'.   -  person r-beginners    schedule 08.11.2020
comment
Я проверил обновленный вопрос, но вы должны быть fillcolor':colormap(ecuador_dict[...][]], чтобы получить цветовой код, получить название города от geojson и получить цветовой код с номером «подтвержденных случаев» в качестве значения цветовой карты.   -  person r-beginners    schedule 08.11.2020
comment
Я пытаюсь узнать значение key_on   -  person Rox    schedule 09.11.2020
comment
Я еще не добавил палитру на свою хороплетную карту   -  person Rox    schedule 09.11.2020


Ответы (1)


fec_map.choropleth(
        geo_data=geojson_ec,
        name='choropleth',
        data=ecuador,
        columns=['Provinces','Confirmed cases'],
        key_on='feature.properties.dpa_despro',
        fill_color='OrRd', 
        fill_opacity=0.5, 
        line_opacity=0.2,
                )

fec_map

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

person Rox    schedule 09.11.2020