Firstly apologies, if I do not explain this very well, I'm relatively new to the cut function and cannot find a suitable answer to my question.
I have X Y coordinate data, and I know how to create evenly distributed bins for use with stat_bin_2d. I would do something like this:
heatmap$xbin <- cut(heatmap$x, breaks = seq(from=0, to=100, by = 20),include.lowest=TRUE )
heatmap$ybin <- cut(heatmap$y, breaks = seq(from=0, to=100, by = 20),include.lowest=TRUE)
Using ggplot I'd include this in a plot like so:
stat_bin_2d(data = heatmap, aes(x=x, y=y), binwidth = c(20,20))+
However if I want to create custom sized bins of different sizes, I'm not entirely sure how I do this. For example, if I wanted to plot specific zones of interest on a sports pitch, how do I approach the cut function as its not an even distribution?

I tried this, but again I don't believe this is correct:
heatmap$xbin <- cut(heatmap$x, breaks = seq(from=80, to=100, by = 1),include.lowest=TRUE )
heatmap$ybin <- cut(heatmap$y, breaks = seq(from=40, to=60, by = 1),include.lowest=TRUE)
Effectively I'd like bins like this, once I know how to customize the bins sizes:
