我想绘制一个百分比直方图方面和一个组填充变量。这里讨论了类似的事情,但没有fill变量。Percentage histogram with facet_wrap
不幸的是,原始的密度解产生了奇怪的结果。在下面的代码中:第一个geom_hist行生成不正确的组R行。第二个geom_hist生成正常计数。如何打印正确的分面百分比?
values <- sample(c(4,8,16,32,64,128,256,512),1000,replace=TRUE)
groups <- sample(c("A","B","C","D"),1000,replace=TRUE)
daf <- data.frame(group=groups,value=values)
daf$state <- "S"
daf$state[daf$group == "A" & daf$value > 16] <- "R"
daf$state[daf$group == "B" & daf$value > 64] <- "R"
daf$state[daf$group == "C" & daf$value > 32] <- "R"
daf$state[daf$group == "D" & daf$value > 256] <- "R"
p <- ggplot(daf, aes(x=value,fill=state)) +
geom_histogram(aes(y = stat(density)*0.5),binwidth=0.5) +
# geom_histogram(aes(y = stat(count)),binwidth=0.5) +
scale_x_continuous(name = "log2-trans",trans="log2",labels = scales::math_format(2^.x, format = log2),breaks = c(0.015625,0.03125,0.0625,0.125,0.25,0.5,0,1,2,4,8,16,32,64,128,256,512)) +
scale_y_continuous(name = "Count")+
facet_wrap(~ group,nrow=5,ncol=3,scales = "free")+
theme_minimal()+
theme(legend.position = "bottom")
p
字符串
1条答案
按热度按时间kq0g1dla1#
通过将
state
Map到fill
上,可以根据state
的面 * 和 * 类别计算密度。相反,如果您希望在两个状态的所有bin上计算密度,则可以使用geom_histogram
中的after_stat
设置fill
颜色,或者作为第二个选项,根据计数手动计算“密度”或百分比:字符串
的数据