gpt4 book ai didi

r - geom_line 根据 y 值的连续颜色

转载 作者:行者123 更新时间:2023-12-04 11:15:24 25 4
gpt4 key购买 nike

如果你看这个

enter image description here

ggplot(mtcars,aes(x=disp,y=mpg,colour=mpg))+geom_line()

你会看到线条颜色根据对应的y值而变化,这正是我想要的,但只是逐段的。我希望颜色根据 y 值不断变化。有什么简便的方法吗?

最佳答案

想到的一种可能性是使用插值来创建更多的 x 和 y 值,从而使颜色更加连续。我用 approx以“线性插入给定的数据点”。下面是一个更简单的数据集的例子:

# original data and corresponding plot
df <- data.frame(x = 1:3, y = c(3, 1, 4))
library(ggplot2)
ggplot(data = df, aes(x = x, y = y, colour = y)) +
geom_line(size = 3)

enter image description here
# interpolation to make 'more values' and a smoother colour gradient 
vals <- approx(x = df$x, y = df$y)
df2 <- data.frame(x = vals$x, y = vals$y)

ggplot(data = df2, aes(x = x, y = y, colour = y)) +
geom_line(size = 3)

enter image description here

如果您希望渐变更平滑,您可以使用 n参数在 approx调整要创建的点数(“插值发生在 n 跨越区间 [ min(x), max(x)] 的等距点”)。如果值较多,可能是 geom_point使外观更平滑:
vals <- approx(x = df$x, y = df$y, n = 500)
df2 <- data.frame(x = vals$x, y = vals$y)
ggplot(data = df2, aes(x = x, y = y, colour = y)) +
geom_point(size = 3)

关于r - geom_line 根据 y 值的连续颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25906018/

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