0

我试图在正常曲线下的一个区域中着色,比如在一个标准偏差之间,但不是一直到 x 轴。我需要将其切断以使曲线下方的顶部只有阴影。在下面的代码中,我想在法线曲线下遮蔽区域,但仅在两条虚线之间。任何人都可以帮忙吗?我见过很多例子,其中部分区域的阴影一直向下延伸到 x 轴。但是,我需要一些方法来阻止用户定义的曲线下区域的下部被着色。

library(ggplot2)

#generate a normal distribution plot
Fig1 <- ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
        stat_function(fun = dnorm, args = list(mean=0, sd=1.25),colour = "darkblue", size = 1.25) +
        theme_classic() +
        geom_hline(yintercept = 0.32, linetype = "longdash") +
        geom_hline(yintercept = 0.175, linetype = "longdash")
Fig1
4

1 回答 1

0

您可以使用geom_polygon您的分布数据/下限线的一个子集。

library(ggplot2)
library(dplyr)

# make data.frame for distribution
yourDistribution <- data.frame(
  x = seq(-4,4, by = 0.01),
  y = dnorm(seq(-4,4, by = 0.01), 0, 1.25)
)
# make subset with data from yourDistribution and lower limit
upper <- yourDistribution %>% filter(y >= 0.175)

ggplot(yourDistribution, aes(x,y)) +
  geom_line() +
  geom_polygon(data = upper, aes(x=x, y=y), fill="red") +
  theme_classic() +
  geom_hline(yintercept = 0.32, linetype = "longdash") +
  geom_hline(yintercept = 0.175, linetype = "longdash")

于 2021-01-01T11:40:56.713 回答