gpt4 book ai didi

r - 如何自定义向ggplot facet函数添加垂直线?

转载 作者:行者123 更新时间:2023-12-04 08:47:37 31 4
gpt4 key购买 nike

我有一个数据集,其中每个物种都与另一个物种的特定密度(数字)和类型(数字)混合。我想向 ggplot 中的每个 facet_grid 面板添加两种类型的垂直线:
(a) 潜水密度/类型的固定线路。例如1000/1 = 1000, 1000/6 = 166.7, 10000/1 = 10000, 10000/6 = 1666.7
(b) 叠加在直方图上的每个处理的自举平均和置信区间。
我尝试使用 geom_vline 添加平均值,但似乎不对。看起来所有的手段都是一样的

set.seed(111)
count <- rbinom(500,100,0.1)
species <- rep(c("A","B"),time = 250)
density <- rep(c("1000","10000","1000","10000"),time = 125)
type <- rep(c("1","1","6","6"),time = 125)
df <- data.frame(species, density, type, count) # I feel too naiive, but I'm not able to get all the treatments filled. Gah.

ggplot(df, aes(x= count, colour = species, fill = species)) +
geom_histogram(position="identity", alpha=0.5) +
theme_bw() + ylab("Frequency") +
facet_grid(species ~ type + density) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank()) +
theme(legend.position = "none") + theme(aspect.ratio = 1.75/1) +
geom_vline(aes(xintercept=mean(count)),color="blue", linetype="dashed", size=1)

最佳答案

我不确定为什么这是分面的默认行为,但我认为它的方法是将汇总数据传递给 geom_vline .一种方法如下(在最后一学期更改您的代码)...

ggplot(df, aes(x= count, colour = species, fill = species)) + 
geom_histogram(position="identity", alpha=0.5) +
theme_bw() + ylab("Frequency") +
facet_grid(species ~ type + density) +
theme(legend.position = "none") + theme(aspect.ratio = 1.75/1) +
geom_vline(data = function(x) x %>%
group_by(species, type, density) %>%
summarise(meancount = mean(count)),
aes(xintercept=meancount),color="blue", linetype="dashed", size=1)
(我已经恢复了网格线,以便您可以看到该线确实移动了一点!)
enter image description here

关于r - 如何自定义向ggplot facet函数添加垂直线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64228622/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com