Plotly choroplethmapbox не позволяет мне строить подсюжеты

Используя разные источники, я написал этот код для построения двух колумбийских карт с суммированным количеством, на котором я хочу отобразить с одной стороны log10 другой, но это работает только тогда, когда я помещаю оба столбца (col=1) в одно и то же значение (1). Вот код:

locs = dfd['department']
for loc in counties['features']:
    loc['id'] = loc['properties']['NOMBRE_DPT']

fig = make_subplots(
    rows=1, cols=2, subplot_titles=['Normal distribution', 'Logarithm 10'],
    specs=[[{"type": "mapbox"}, {"type": "mapbox"}]]
)

fig.add_trace(go.Choroplethmapbox(
                    geojson=counties,
                    locations=dfd['department'],
                    z=dfd['cases'],
                    colorbar_title = 'First',
                    colorbar=dict(thickness=20, x=0.46),
                    marker=dict(opacity=0.75)), row=1, col=1)

fig.add_trace(go.Choroplethmapbox(
                    geojson=counties,
                    locations=dfd['department'],
                    z=np.log10(dfd['cases']),
                    colorbar_title = 'Second',
                    colorbar=dict(thickness=20, x=1.02),
                    marker=dict(opacity=0.75)), row=1, col=1)

fig.update_layout(margin=dict(l=20, r=0, t=40, b=40))

fig.update_layout(mapbox1=dict(zoom=3.4, style='carto-positron'),
                  mapbox2=dict(zoom=3.4, style='light'),
                  mapbox_center = {"lat": 4.570868, "lon": -74.2973328})

fig.show()

И фото того, что он показывает: введите здесь описание изображения

Спасибо!!!

Вы должны использовать specs с mak_subplots.

Hamzah 10.10.2022 09:01
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поскольку вы не представили никаких данных, я создал подграфик примеров в справочнике, измененный в соответствии с вашим кодом. Я думаю, вам нужно настроить параметры mapbox для каждой карты, чтобы понять, почему обе не отображаются. Мне также нужно настроить дополнительный токен API для mapbox, поскольку это требуется в моей среде. Подробности смотрите здесь.

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
import numpy as np

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

from plotly.subplots import make_subplots
import plotly.graph_objects as go

token = open("mapbox_api_key.txt").read()

fig = make_subplots(
    rows=1, cols=2, subplot_titles=['Normal distribution', 'Logarithm 10'],
    specs=[[{"type": "mapbox"}, {"type": "mapbox"}]]
)

fig.add_trace(go.Choroplethmapbox(
    geojson=counties,
    locations=df.fips,
    z=df.unemp,
    colorscale = "Viridis",
    colorbar_title = 'First',
    colorbar=dict(thickness=20, x=0.46),
    marker=dict(opacity=0.75)), row=1, col=1)

fig.add_trace(go.Choroplethmapbox(
    geojson=counties,
    locations=df.fips,
    z=np.log10(df.unemp),
    colorscale = "Viridis",
    colorbar_title = 'Second',
    colorbar=dict(thickness=20, x=1.02),
    marker=dict(opacity=0.75)), row=1, col=2)

fig.update_layout(margin=dict(l=20, r=0, t=40, b=40))

fig.update_layout(mapbox1=dict(zoom=3.4, style='carto-positron', center = {"lat": 37.0902, "lon": -95.7129}, accesstoken=token),
                  mapbox2=dict(zoom=3.4, style='light', center = {"lat": 37.0902, "lon": -95.7129}, accesstoken=token))

fig.show()

Другие вопросы по теме