gpt4 book ai didi

r - vline左侧的阴影密度图?

转载 作者:行者123 更新时间:2023-12-04 19:58:21 24 4
gpt4 key购买 nike

是否可以使用 vline 作为截止点对密度图进行着色?例如:

df.plot <- data.frame(density=rnorm(100))
library(ggplot2)
ggplot(df.plot, aes(density)) + geom_density() +
geom_vline(xintercept = -0.25)

我尝试创建一个新变量,但它没有按我预期的那样工作
df.plot <- df.plot %>% mutate(color=ifelse(density<(-0.25),"red","NULL"))


ggplot(df.plot, aes(density, fill = color, colour = color)) + geom_density() +
geom_vline(xintercept = -0.25)

最佳答案

我不知道有什么方法可以直接用 ggplot 做到这一点.但是您可以在所需范围内计算 ggplot 之外的密度:

set.seed(4132)
df.plot <- data.frame(density=rnorm(100))
ds <- density(df.plot$density, from = min(df.plot$density), to = -0.25)
ds_data <- data.frame(x = ds$x, y = ds$y)
density()估计其第一个参数中给出的点的密度。结果将包含 xy值。您可以指定 x -您感兴趣的范围 fromto .为了使密度与 ggplot() 绘制的密度一致,将范围设置为 df.plot$density 中的最小值和最大值.在这里, to设置为 -0.25 ,因为您只需要 vline 左侧的密度曲线部分。然后您可以提取 xy值与 ds$xds$y .

然后使用与您相同的代码创建绘图,但添加了一个额外的 geom_area()使用上面计算的密度数据:
library(ggplot2)
ggplot(df.plot, aes(density)) + geom_density() +
geom_vline(xintercept = -0.25) +
geom_area(data = ds_data, aes(x = x, y = y))

enter image description here

关于r - vline左侧的阴影密度图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36224394/

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