在 ggplot 直方图中显示百分比
Show percent in ggplot histogram
我用百分比绘制直方图(效果很好)但是当我尝试打印百分比值时,y 轴的比例不再正确。
百分比直方图的代码(效果很好)如下:
data_impact_final %>%
ggplot(aes(x = time_to_treat_month)) +
geom_histogram(aes(y = (..count..)/sum(..count..)),binwidth=6) +
scale_y_continuous(labels = scales::percent)
enter image description here
但是,当我尝试使用 stat_bin 在图表上打印百分比时,y 轴的比例不再正确。这是我用来打印百分比的代码:
data_impact_final %>%
ggplot(aes(x = time_to_treat_month)) +
geom_histogram(aes(y = (..count..)/sum(..count..)),binwidth=6) +
stat_bin(binwidth=6, geom='text', color='white', aes(label = scales::percent((..count..)/sum(..count..))),position=position_stack(vjust = 0.5))+
scale_y_continuous(labels = scales::percent)
enter image description here
感谢您的帮助
问题是标签位于 y=..count..
。要解决您的问题,请在 stat_bin
中也使用 y=..count../sum(..count..)
。
使用 ggplot2::mpg
作为示例数据:
library(ggplot2)
library(dplyr)
mpg %>%
ggplot(aes(x = hwy)) +
geom_histogram(aes(y = (..count..)/sum(..count..)),binwidth=6) +
scale_y_continuous(labels = scales::percent)
mpg %>%
ggplot(aes(x = hwy)) +
geom_histogram(aes(y = (..count..)/sum(..count..)),binwidth=6) +
stat_bin(binwidth=6, geom='text', color='white', aes(y = ..count../sum(..count..), label = scales::percent((..count..)/sum(..count..))),position=position_stack(vjust = 0.5))+
scale_y_continuous(labels = scales::percent)
我用百分比绘制直方图(效果很好)但是当我尝试打印百分比值时,y 轴的比例不再正确。
百分比直方图的代码(效果很好)如下:
data_impact_final %>%
ggplot(aes(x = time_to_treat_month)) +
geom_histogram(aes(y = (..count..)/sum(..count..)),binwidth=6) +
scale_y_continuous(labels = scales::percent)
enter image description here
但是,当我尝试使用 stat_bin 在图表上打印百分比时,y 轴的比例不再正确。这是我用来打印百分比的代码:
data_impact_final %>%
ggplot(aes(x = time_to_treat_month)) +
geom_histogram(aes(y = (..count..)/sum(..count..)),binwidth=6) +
stat_bin(binwidth=6, geom='text', color='white', aes(label = scales::percent((..count..)/sum(..count..))),position=position_stack(vjust = 0.5))+
scale_y_continuous(labels = scales::percent)
enter image description here
感谢您的帮助
问题是标签位于 y=..count..
。要解决您的问题,请在 stat_bin
中也使用 y=..count../sum(..count..)
。
使用 ggplot2::mpg
作为示例数据:
library(ggplot2)
library(dplyr)
mpg %>%
ggplot(aes(x = hwy)) +
geom_histogram(aes(y = (..count..)/sum(..count..)),binwidth=6) +
scale_y_continuous(labels = scales::percent)
mpg %>%
ggplot(aes(x = hwy)) +
geom_histogram(aes(y = (..count..)/sum(..count..)),binwidth=6) +
stat_bin(binwidth=6, geom='text', color='white', aes(y = ..count../sum(..count..), label = scales::percent((..count..)/sum(..count..))),position=position_stack(vjust = 0.5))+
scale_y_continuous(labels = scales::percent)