R 在ggplot中使用stat_函数时,为曲线段着色

R 在ggplot中使用stat_函数时,为曲线段着色,r,colors,ggplot2,R,Colors,Ggplot2,我绘制了一条z曲线,并使用geom_段为曲线下方的区域着色 我已经绘制了z分布图 p <- ggplot(data.frame(x = c(-3, 3)), aes(x)) + stat_function(fun = dnorm) pdnorm_segment=min&xbeautiful的答案,我印象深刻。非常感谢。不幸的是,在使用ggplot2之前,您需要对数据进行子集(手动分段)处理。我们希望看到此选项直接集成到ggplot2上 dnorm_segment <- functi

我绘制了一条z曲线,并使用
geom_段
为曲线下方的区域着色

我已经绘制了z分布图

p <- ggplot(data.frame(x = c(-3, 3)), aes(x)) + stat_function(fun = dnorm)

p
dnorm_segment=min&xbeautiful的答案,我印象深刻。非常感谢。不幸的是,在使用ggplot2之前,您需要对数据进行子集(手动分段)处理。我们希望看到此选项直接集成到ggplot2上
dnorm_segment <- function(x, min = 0, max = 1) dnorm(x)*ifelse(x>=min & x<=max, 1, NA)
zero_segment <- function(x, min = 0, max = 1) ifelse(x>=min & x<=max, 0, NA)
plot_both <- function(min, max, colour) 
{
  args <- list(min = min, max = max)
  list(
    stat_function(fun = dnorm_segment, col = colour, size = 3, args = args, n = 1001),
    stat_function(fun = zero_segment, col = colour, size = 3, args = args, n = 1001)
  )
}

ggplot(data.frame(x = c(-3, 3)), aes(x)) + 
  stat_function(fun = dnorm) + 
  plot_both(-3, -2, "purple") +
  plot_both(-2, -1, "yellow")
# + etc