Используя разные источники, я написал этот код для построения двух колумбийских карт с суммированным количеством, на котором я хочу отобразить с одной стороны 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()
И фото того, что он показывает: введите здесь описание изображения
Спасибо!!!






Поскольку вы не представили никаких данных, я создал подграфик примеров в справочнике, измененный в соответствии с вашим кодом. Я думаю, вам нужно настроить параметры 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()
Вы должны использовать
specsсmak_subplots.