Reputation: 18219
On this page, they give the following example
library(ggplot2)
library(reshape2)
ggplot(data=tips, aes(x=day)) + geom_bar(stat="bin")
Instead of a count I'd like to have a frequency in y-axis. How can I achieve this?
Upvotes: 43
Views: 99344
Reputation: 2570
With ggplot2 >= 3.4.0, I think the recommended way is the following:
library("ggplot2")
library("reshape2")
ggplot(data = tips, aes(x = day)) +
geom_bar(aes(y = after_stat(prop), group = 1))
Upvotes: 4
Reputation: 3486
now ..prop..
is available
ggplot(data=tips, aes(x=day)) +
geom_bar(aes(y = ..prop.., group = 1))
Upvotes: 23
Reputation: 25608
Here's the solution which can be found in related question:
pp <- ggplot(data=tips, aes(x=day)) +
geom_bar(aes(y = (..count..)/sum(..count..)))
If you would like to label frequencies as percentage, add this (see here):
library(scales)
pp + scale_y_continuous(labels = percent)
Upvotes: 57