gpt4 book ai didi

r - 在 ggplot 中设置黄土线置信区间阴影的限制

转载 作者:行者123 更新时间:2023-12-04 09:19:28 26 4
gpt4 key购买 nike

我在 ggplot 中正确显示黄土线时遇到问题。我有几个变量,没有一个可以低于零,例如高度、重量和丰度。我试图用黄土线在 ggplot 中绘制这些数据。使用一些编造的数据:

library(ggplot2)

df <- as.data.frame(rep(1:7, each = 5))

df[,2] <- c(0,1,5,0,6,0,7,2,9,1,1,18,4,2,34,8,18,24,56,12,12,18,24,63,48,
40,70,53,75,98,145,176,59,98,165)

names(df) <- c("x", "y")

ggplot(df, aes(x=x, y=y)) +
geom_point() +
geom_smooth() +
scale_y_continuous(limits = c(-20,200))

enter image description here

这很好,除了显示平滑线周围置信区间的阴影区域低于零并且审阅者指出这是不可能的并要求我更改它。我认为这可以通过将 y 轴的下限设置为零来轻松完成:
ggplot(df, aes(x=x, y=y)) +
geom_point() +
geom_smooth() +
scale_y_continuous(limits = c(0,200))

enter image description here

但这使得黄土线周围的部分阴影区域消失。有没有办法让绘图在 y 轴限制为零的情况下工作,以便切断部分阴影区域,或者首先在黄土线上设置限制,以便它不会创建阴影低于零的区域?

最佳答案

我们可以计算覆盖ymin的 aes stat_smooth (注意与 geom_smooth 的区别):

ggplot(df, aes(x=x, y=y)) +
geom_point() +
stat_smooth(geom='ribbon', aes(ymin = ifelse(..ymin.. < 0, 0, ..ymin..)),
alpha = .3) +
geom_smooth(se = FALSE) +
scale_y_continuous(limits = c(-20,200))
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'



创建于 2018-05-22 由 reprex package (v0.2.0)。

关于r - 在 ggplot 中设置黄土线置信区间阴影的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50471926/

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