(Индексирование по свойствам GeoJSON) Как правильно построить хороплет, используя featureidkey?

#python #geojson #choropleth

#python #geojson #хороплет

Вопрос:

Я следую примеру URL: https://plotly.com/python/choropleth-maps/#base-map-configuration (Индексация по свойствам GeoJSON). Это мой код:

фрейм данных Эквадора:

 Provinces    Confirmed cases    Confirmed deaths    Probable deaths
0   AZUAY      10688.0                 195.0          12.0
1   BOLÍVAR    2115.0                  66.0           12.0
2   CAÑAR       2153.0                 83.0           7.0
3   CARCHI      3058.0                 104.0          1.0
4   CHIMBORAZO  2536.0                 315.0         119.0

map_ecuador = folium.Map(location=[-1.3397668, -79.3666965.], tiles='OpenStreetMap', zoom_start=7)

geoURL="https://data.humdata.org/dataset/e66dbc70-17fe-4230-b9d6-855d192fc05c/resource/6fa37b41-ad28-40a6-9641-3b4efd4dbe13/download/ecuador.geojson"
    with urlopen(geoURL) as response:
        geojson = json.load(response)
print(ecuador["Provinces"][0])
print(geojson["features"][0]["properties"])

results:
AZUAY
{'DPA_VALOR': 0, 'DPA_ANIO': '2011', 'DPA_CANTON': '0101', 'DPA_DESCAN': 'CUENCA', 'DPA_PROVIN': 
'01', 'DPA_DESPRO': 'AZUAY', 'PCODE2': 'EC0101'}


fig = px.choropleth(ecuador, geojson=geojson, color="Bergeron",
                    locations=ecuador['Provinces'], 
                    featureidkey="features.properties",
                    projection="mercator"
                   )
fig.update_geos(fitbounds="locations", visible=False)
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()
  

И затем я получаю эту ошибку:

 TypeError                                 Traceback (most recent call last)
<ipython-input-68-7439eb1d4543> in <module>()
      2                     locations=ecuador['Provinces'],
      3                     featureidkey="features.properties",
----> 4                     projection="mercator"
      5                    )
      6 fig.update_geos(fitbounds="locations", visible=False)

TypeError: choropleth() got an unexpected keyword argument 'geojson'
  

Пожалуйста, помогите мне и ознакомьтесь с руководством, которому я следую. Я думаю, что моя проблема в featureidkey, но без него на картах не отображаются полигоны каждой провинции.

Ответ №1:

Ошибка типа: choropleth() получил неожиданный аргумент ключевого слова ‘geojson’

Это сообщение об ошибке сообщает вам, в чем проблема: вы передаете geojson аргумент, которого он не ожидает. Какую версию plotly вы используете? geojson Атрибут был добавлен px.choropleth в версии 4.5.0. Я подозреваю, что вы используете более старую версию.

https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md#450—2020-01-22

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

1. Спасибо Mattficke, я проверю код и сообщу вам, какую версию я использую. Дайте мне больше времени, так как я сейчас в классе. Пока, береги себя.

2. Действительно, импортируйте plotly plotly. __версия__ Результат: 4.4.1