Reputation: 2024
I am trying to move / reposition the colorbar. I overlay multiple layers of spatial data on the map, and the colorbar overlaps with eachother. I'd like to be able to reposition the colorbars.
I am using the US counties GeoJSON file from: https://eric.clst.org/tech/usgeojson/
import pandas as pd
import geopandas as gpd
import mapbox
from plotly import graph_objs as go
from plotly.graph_objs import *
# Update with host url
df_geo = gpd.read_file('https://raw.githubusercontent.com/host')
import plotly.graph_objects as go
fig = go.Figure(go.Choroplethmapbox(geojson=df_geo['geometry'].to_json(),
locations=df_geo['NAME'],
z=df_geo['CENSUSAREA'],
autocolorscale=False,
colorscale="Viridis",
zmin=df_geo['CENSUSAREA'].min(),
zmax=df_geo['CENSUSAREA'].max(),
marker_line_width=0))
fig.update_layout(mapbox_style="light",
mapbox_accesstoken=token,
mapbox_zoom=3,
mapbox_center = {"lat": 37.0902, "lon": -95.7129},
margin={"r":0,"t":0,"l":0,"b":0})
fig.update_layout()
fig.show()
Upvotes: 0
Views: 853
Reputation: 31226
to_json()
does not return geojson. Used __geo_interface__
insteadset_index()
as well to make it consistent and use real id in geojsonquantile()
import pandas as pd
import geopandas as gpd
# import mapbox
import requests
import plotly.graph_objects as go
# Update with host url
df_geo = gpd.GeoDataFrame.from_features(
requests.get(
"https://eric.clst.org/assets/wiki/uploads/Stuff/gz_2010_us_050_00_20m.json"
).json()
)
import plotly.graph_objects as go
fig = go.Figure(
go.Choroplethmapbox(
geojson=df_geo.set_index("GEO_ID")["geometry"].__geo_interface__,
locations=df_geo["GEO_ID"],
z=df_geo["CENSUSAREA"],
autocolorscale=False,
colorscale="Viridis",
zmin=df_geo["CENSUSAREA"].min(),
zmax=df_geo["CENSUSAREA"].quantile(0.95),
marker_line_width=0,
colorbar={"orientation": "h", "x": 0.5, "yanchor": "middle", "y": 0.1},
)
)
fig.update_layout(
mapbox_style="carto-positron",
# mapbox_accesstoken=token,
mapbox_zoom=3,
mapbox_center={"lat": 37.0902, "lon": -95.7129},
margin={"r": 0, "t": 0, "l": 0, "b": 0},
)
fig.show()
Upvotes: 1