I am making a hexbin plot with the following Python script:
pitch = Pitch(
line_color="#747474", pitch_color="#222222", orientation="vertical", half=True, plot_arrow=False
)
fig, ax = pitch.create_pitch()
## color-map
cmap = [
"#222222", "#3A2527", "#52282B", "#6A2B30",
"#762C32", "#822D34", "#8E2F37", "#9A3039",
"#B2323D", "#BE3440", "#CA3542", "#E13746"
]
cmap = colors.ListedColormap(cmap)
hexbin = ax.hexbin(
68 - shots_data['Y'], shots_data['X'], zorder=3, cmap=cmap,
extent=(0, 68, 52, 104), gridsize=22, bins=13, ec="#222222", lw=3
)
The above code produces the following output:
Now I want to add borders around the hexagons with the most frequent values, which will look something like this. Note that in the below image the white borders are hand drawn to show how the result will look like. I don't know how to do this. What should I add in the code to produce such result.

Edit:
I am getting some results but they are not perfect, here is the updated script:
## Pitch obejct
pitch = Pitch(
line_color="#747474", pitch_color="#222222", orientation="vertical", half=True, plot_arrow=False
)
## create-pitch
fig, ax = pitch.create_pitch()
## colormap
cmap = [
"#3A2527", "#52282B", "#6A2B30", "#822D34",
"#822D34","#882E36", "#8E2F37", "#9A3039", "#B2323D", "#E13746"
]
cmap = colors.ListedColormap(cmap)
## extent
extent = (
shots_data['Y'].min(), shots_data['Y'].max(),
shots_data['X'].min(), shots_data['X'].max(),
)
## main hexbin
hexbin = ax.hexbin(
68 - shots_data['Y'], shots_data['X'], zorder=3, cmap=cmap,
extent=extent, gridsize=22, ec="#222222", lw=1, bins="log", mincnt=1
)
## hexbin with mincnt=6
cmap = [
"#822D34", "#882E36", "#8E2F37", "#9A3039", "#B2323D", "#E13746"
]
cmap = colors.ListedColormap(cmap)
ax.hexbin(
68 - shots_data['Y'], shots_data['X'], zorder=3, cmap=cmap,
extent=extent, gridsize=22, ec="#bce7ef", lw=1, bins="log", mincnt=6
)
## add rectangle
rect = plt.Rectangle(
xy=(-0.1, 104), width=68.1, height=1, zorder=3, fc="#222222"
)
ax.add_patch(rect)



