gpt4 book ai didi

r - geom_smooth的条件着色

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

我正在分析一个在零附近变化的序列。为了查看序列中的哪些部分趋向于大部分为正数或大部分为负数,我正在绘制geom_smooth。我想知道是否可以使平滑线的颜色取决于它是高于还是低于0。下面是一些代码,该代码生成的图形与我尝试创建的图形非常相似。

set.seed(5)
r <- runif(22, max = 5, min = -5)
t <- rep(-5:5,2)
df <- data.frame(r+t,1:22)
colnames(df) <- c("x1","x2")
ggplot(df, aes(x = x2, y = x1)) + geom_hline() + geom_line() + geom_smooth()

我考虑过计算平滑值,将它们添加到df中,然后使用 scale_color_gradient,但是我想知道是否有一种方法可以直接在 ggplot中实现。

最佳答案

您可以在n中使用geom_smooth参数来增加“要更平滑地评估的点数”,以便创建更多接近零的y值。然后使用ggplot_buildggplot对象获取平滑值。这些值在geom_line中使用,该代码添加在原始图的顶部。最后,我们用geom_hline绘制y = 0的值。

# basic plot with a larger number of smoothed values
p <- ggplot(df, aes(x = x2, y = x1)) +
geom_line() +
geom_smooth(linetype = "blank", n = 10000)

# grab smoothed values
df2 <- ggplot_build(p)[[1]][[2]][ , c("x", "y")]

# add smoothed values with conditional color
p +
geom_line(data = df2, aes(x = x, y = y, color = y > 0)) +
geom_hline(yintercept = 0)

enter image description here

关于r - geom_smooth的条件着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32908222/

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