I've seen posts relating to plotting the difference between two hexbin maps in matplotlib. I couldn't find anything executing the same process but for Plotly hexbin map box plots. If I have two separate hexbin subplots (t, y)
, is it possible to produce a single plot that subtracts the difference between t
and y
?
import pandas as pd
import plotly.express as px
import plotly.graph_objs as go
import plotly.figure_factory as ff
from plotly.subplots import make_subplots
data = pd.DataFrame({
'Cat': ['t','y','y','t','t','t','t','y','y','y','t','y'],
'LAT': [5,6,7,5,6,7,5,6,7,5,6,7],
'LON': [10,11,12,10,11,12,10,11,12,10,11,12],
})
data = pd.concat([data]*5)
df_t = data[data['Cat'] == 't']
df_y = data[data['Cat'] == 'y']
fig = make_subplots(
rows = 2,
cols = 1,
subplot_titles = ('t', 'y'),
specs = [[{"type": "choroplethmapbox"}], [{"type": "choroplethmapbox"}]],
vertical_spacing = 0.05,
horizontal_spacing = 0.05
)
fig2 = ff.create_hexbin_mapbox(data_frame=df_t,
lat="LAT", lon="LON",
nx_hexagon=5,
opacity=0.5,
labels={"color": "Point Count"},
mapbox_style='carto-positron',
)
fig3 = ff.create_hexbin_mapbox(data_frame=df_y,
lat="LAT", lon="LON",
nx_hexagon=5,
opacity=0.5,
labels={"color": "Point Count"},
mapbox_style='carto-positron',
)
fig.add_trace(fig2.data[0], row=1,col=1)
fig.update_mapboxes(zoom=4, style='carto-positron')
fig.add_trace(fig3.data[0], row=2,col=1)
fig.update_mapboxes(zoom=4, style='carto-positron')
fig.update_layout(height=600, margin=dict(t=20,b=0,l=0,r=0))
fig.show()
intended output:
The bottom left bin for t
has 15 points, while y
has 5. So this will total 10. The middle bin has 10 points for both so will result in 0. The top right has 5 for t
and 15 for y
, coming to -10. But I'll set vmin
to 0 to ensure no negative values.
from Plot difference between two Plotly hexbin maps
No comments:
Post a Comment