首页 > 解决方案 > 在 ggplot 直方图中显示百分比

问题描述

我做了一个百分比直方图(效果很好),但是当我尝试打印百分比的值时,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)

在此处输入图像描述

但是,当我尝试使用 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)

在此处输入图像描述

谢谢您的帮助

标签: rggplot2histogram

解决方案


问题是标签放置在y=..count... 为了解决您的问题y=..count../sum(..count..)stat_bin也可以使用。

使用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)


推荐阅读