繁体   English   中英

R ggplot 根据 bin 大小缩放直方图

[英]R ggplot scale histogram according to bin size

我正在尝试使用 ggplot 制作直方图,其中每个 bin 的面积是每个 bin 中出现的总数。 所以从本质上讲,我希望通过 bin 高度的一个因子来缩小直方图的高度。 我可以毫无问题地创建一个正常的直方图,但我不太确定如何以这种方式缩放直方图。 下面给出了数据和未缩放的直方图。 任何帮助将非常感激。

times <- c(71, 72, 73, 74, 75, 76, 77, 78, 79, 80)
occurrences <- c(2, 0, 3, 5, 4, 1, 3, 1, 0, 1)
df <- data.frame("times" = rep(times, occurrences))

ggplot(df, aes(times)) + geom_histogram(breaks=seq(70.5,80.5,2), 
  colour = "black", size = 2) + ylab("Frequencies") + ylim(0,10) + 
  ggtitle("Bin Width = 2 (un-scaled)")

您可以添加y =..count../2以根据您的 bin 宽度缩放直方图:

ggplot(df, aes(times)) + 
  geom_histogram(aes(y = ..count../2), breaks=seq(70.5,80.5,2),  colour = "black", size = 2) + 
  ylab("Frequencies") + ylim(0,10) + 
  ggtitle("Bin Width = 2 (scaled)")

在此处输入图像描述

我认为您需要的是使用geom_col()的条形图

library(dplyr)
library(ggplot2)

df %>% 
  count(times) %>% 
  ggplot(aes(x=factor(times), y=n)) +
  geom_col(colour = "black", size = 2) + 
  ylab("Frequencies") + 
  ylim(0,6) +
  xlab("times") 

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM