43.1 Burbujas agrupadas en plotly
Si se desea agrupaciones de puntos se tiene la alternativa cluster. Pero no está definido en el geoma de go.ScatterGeo. Se utiliza, en cambio, go.ScatterMap:
import plotly.graph_objects as go
import pandas as pd
merluccius = pd.read_csv("merluccius_tmp.csv", na_filter=False)
color_map = {'Especimen_conservado': 'blue', 'Obs_humana': 'red'}
merluccius['color_code'] = merluccius['basis_record'].map(color_map)
merluccius['tooltip'] = ( "Latitud: " + merluccius['lat'].astype(str) +
", Longitud: " + merluccius['lon'].astype(str) +
"<br>Localidad: " + merluccius['localidad'] +
"<br>Tipo de registro: " + merluccius['basis_record'] +
"<br>Número de individuos: " + merluccius['conteo'].astype(str))
sizeref = 2.0 * merluccius['conteo'].max() / (15**2)
center = dict(lat=float(merluccius['lat'].mean()),
lon=float(merluccius['lon'].mean()))
fig_mapa = go.Figure()
trace = go.Scattermap(
lon = merluccius['lon'],
lat = merluccius['lat'],
text = merluccius['tooltip'],
hoverinfo = 'text',
mode = 'markers',
marker = dict(
size = merluccius['conteo'],
color = merluccius['color_code'],
opacity = 0.6,
sizemode = 'area',
sizeref = sizeref,
sizemin = 3),
cluster = dict(enabled = True,
step=[2, 5, 10],
size=[8, 12, 18, 26],
opacity = [0.5, 0.55, 0.6, 0.65],
color=["#c6dbef", "#9ecae1", "#6baed6", "#3182bd"],
maxzoom=6),
name = "Registros")
layout = go.Layout(title = "Distribución de la merluza europea",
height = 600,
mapbox = dict(style = "open-street-map",
center = center, zoom = 2),
margin = dict(l=0, r=0, t=50, b=0))
fig_mapa = go.Figure(data=[trace], layout=layout)step = 5, como entero, indica cada cuánto se genera un nivel de agrupamiento: \(50, 100, 150\), etc…step = [2, 5, 10], como lista, indica el límite inferior de cada nivel de agrupamiento, que se extiende “hasta uno menos que el siguiente valor”: \(1\) a \(19\), \(20\) a \(39\), \(40\) a \(99\), más de \(100\dots\)maxzoom=6indica a qué nivel de zoom debe desactivarse el agrupamientosize=[8, 12, 18, 26]ycolor=["#c6dbef", "#9ecae1", "#6baed6"]es el tamaño y el color de los círculos, por nivel de agrupamiento.