我绘制了一条z曲线,并使用geom_segment
为曲线下方的区域着色。
我使用
绘制了z分布p <- ggplot(data.frame(x = c(-3, 3)), aes(x)) + stat_function(fun = dnorm)
我想为曲线的各个部分着色,使曲线的颜色与其下方x轴上的颜色相匹配。
由于我使用stat_function
,我觉得修改它的特性的机会较少。
有没有人尝试过类似的壮举并找到了办法呢?
答案 0 :(得分:2)
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