I am trying to add a Scattergeo
trace or overlay on top of a white-bg
density mapbox to get a heat map over a generic USA states outline.
The reason for my use of scattergeo
is I'd like to plot a star symbol on top of the density mapbox, and the only symbol accepted via add_scattermapbox
is a dot. If you choose the star
symbol, there is no symbol added.
I'm also aware that star symbols are acceptable for the p mapbox_styles
of add_scattermapbox
or density_scattermapbox
but at the present time I am not in the position to pay per web load after the trial amount runs out.
Is there a clever way to add a star symbol on top of a density_mapbox
plot?
Working ScatterGeo
fig = go.Figure(go.Scattergeo())
fig.add_scattergeo(lat = [30, 40]
,lon = [-90, -80]
,hoverinfo = 'none'
,marker_size = 10
,marker_color = 'rgb(65, 105, 225)' # blue
,marker_symbol = 'star'
,showlegend = False
)
fig.update_geos(
visible=False, resolution=110, scope="usa",
showcountries=True, countrycolor="Black",
showsubunits=True, subunitcolor="Black"
)
fig.show()
Working Density Mapbox
d = {'Location': ['Point A', 'Point B'], 'lat': [30, 40], 'long': [-90, -80], 'z': [100,200]}
df = pd.DataFrame(data=d)
fig = px.density_mapbox(df
,lat='lat'
,lon='long'
,z='z'
,hover_name='Location'
,center=dict(lat=38.5, lon=-96)
,range_color = [0, 200]
,zoom=2
,radius=50
,opacity=.5
,mapbox_style='open-street-map')
fig.add_scattermapbox(lat = [30, 40]
,lon = [-90, -80]
,hoverinfo = 'none'
,marker_size = 6
,marker_color = 'rgb(0, 0, 0)'
# ,marker_symbol = 'star'
,showlegend = False
)
fig.show()
Attempt #1 - Just set marker_symbol = 'star'
Un-commenting the marker_symbol = 'star'
, which would work for the premium styles of mapbox
, completely removes the scatter point.
d = {'Location': ['Point A', 'Point B'], 'lat': [30, 40], 'long': [-90, -80], 'z': [100,200]}
df = pd.DataFrame(data=d)
fig = px.density_mapbox(df
,lat='lat'
,lon='long'
,z='z'
,hover_name='Location'
,center=dict(lat=38.5, lon=-96)
,range_color = [0, 200]
,zoom=2
,radius=50
,opacity=.5
,mapbox_style='open-street-map')
fig.add_scattermapbox(lat = [30, 40]
,lon = [-90, -80]
,hoverinfo = 'none'
,marker_size = 6
,marker_color = 'rgb(0, 0, 0)'
,marker_symbol = 'star'
,showlegend = False
)
fig.show()
Attempt #2 - Adding a density mapbox on top of the scatter geo
Adding a density_mapbox
on top of the scattergeo
produces the same geo plot, but nothing more. The density mapbox legend is there, but no heat map.
d = {'Location': ['Point A', 'Point B'], 'lat': [30, 40], 'long': [-90, -80], 'z': [100,200]}
df = pd.DataFrame(data=d)
fig = go.Figure(go.Scattergeo())
fig.add_scattergeo(lat = [30, 40]
,lon = [-90, -80]
,hoverinfo = 'none'
,marker_size = 10
,marker_color = 'rgb(65, 105, 225)' # blue
,marker_symbol = 'star'
,showlegend = False
)
fig.add_densitymapbox(lat=df['lat'],
lon=df['long'],
z=df['z'],
radius=50,
opacity=.5
)
fig.update_geos(
visible=False, resolution=110, scope="usa",
showcountries=True, countrycolor="Black",
showsubunits=True, subunitcolor="Black"
)
fig.show()
from Plotly - Adding Scatter Geo points and traces on top of Density Mapbox
No comments:
Post a Comment