I wish to build a plot, essentially identical to that which i can produce using ggplots 'stat_bin2d' layer, however instead of the counts being mapped to a variable, I want the counts associated with the bin to be displayed as a label to each bin.
I got the following solution to the equivalent 1D problem from another thread
data <- data.frame(x = rnorm(1000), y = rnorm(1000))
ggplot(data, aes(x = x)) +
stat_bin() +
stat_bin(geom="text", aes(label=..count..), vjust=-1.5)
The counts for each bin are clearly labeled. However moving from the 1D to 2D case, this works,
ggplot(data, aes(x = x, y = y)) +
stat_bin2d()
But this returns an error.
ggplot(data, aes(x = x, y = y)) +
stat_bin2d() +
stat_bin2d(geom="text", aes(label=..count..))
Error: geom_text requires the following missing aesthetics: x, y
In more recent versions of ggplot
this is perfectly possible and works without errors.
Just be sure that you use the same arguments to both call of stat_bin2d()
. For example, set binwidth = 1
on both lines:
library(ggplot2)
data <- data.frame(x = rnorm(1000), y = rnorm(1000))
ggplot(data, aes(x = x, y = y)) +
geom_bin2d(binwidth = 1) +
stat_bin2d(geom = "text", aes(label = ..count..), binwidth = 1) +
scale_fill_gradient(low = "white", high = "red") +
xlim(-4, 4) +
ylim(-4, 4) +
coord_equal()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With