Карта с Choroplethmapbox не отображается в Dash - PullRequest
2 голосов
/ 23 марта 2020

Я пытаюсь построить карту с Choroplethmapbox в Да sh, но я не могу построить в этом.

Я тестирую гео json с другим инструментом и в этих инструментах, карте рисуется правильно, но не с Choroplethmapbox.

Есть идеи о том, что я делаю неправильно?

Спасибо

Geo Json:

https://gist.github.com/Tlaloc-Es/5c82834e5e4a9019a91123cb11f598c0

Python Da sh Код:

import json
with open('mexico.geojson') as f:
    counties = json.load(f)
fig = go.Figure(go.Choroplethmapbox(
    geojson=counties,
    locations=df['COV_'],
    z=df['Enero'],
    colorscale="Viridis", zmin=0, zmax=df['Enero'].max(),
    marker_opacity=0.5, marker_line_width=0))

fig.update_layout(mapbox_style="carto-positron",
                  mapbox_zoom=3, mapbox_center = {"lat": 37.0902, "lon": -95.7129})
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})

Ответы [ 2 ]

3 голосов
/ 23 марта 2020

похоже, что вам не хватает fig.show () внизу и импорта plotly.graph_objects как go вверху. Приведенный ниже код откроет карту, но для значений хороплетов необходимы данные. В вашем примере кода есть df, но вы не включили csv. Если вы хотите использовать df в своем коде, импортируйте pandas и создайте фрейм данных с именем df из csv. Вот ссылка, которая может помочь с этим. Pandas датафреймы

import json
import plotly.graph_objects as go


with open(r'{insert file path here}.geojson') as f:
    counties = json.load(f)
fig = go.Figure(go.Choroplethmapbox(
    geojson=counties,
    colorscale="Viridis", zmin=0, zmax=100,
    marker_opacity=0.5, marker_line_width=0))

fig.update_layout(mapbox_style="carto-positron",
                  mapbox_zoom=3, mapbox_center = {"lat": 37.0902, "lon": -95.7129})
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()

Вот пример использования pandas с вами json. Дополнительное объяснение приведенного ниже кода можно найти здесь

from urllib.request import urlopen
import json
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    counties = json.load(response)

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv",
                   dtype={"fips": str})

import plotly.express as px

fig = px.choropleth(df, geojson=counties, locations='fips', color='unemp',
                           color_continuous_scale="Viridis",
                           range_color=(0, 12),
                           scope="usa",
                           labels={'unemp':'unemployment rate'}
                          )
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()
1 голос
/ 23 марта 2020

Мне нужно было добавить идентификатор с этим кодом:

Я использовал код этой страницы: https://community.plot.ly/t/plot-a-shapefile-shp-in-a-choropleth-chart/27850

...