R 如何用可见光谱颜色填充曲线下的区域

R 如何用可见光谱颜色填充曲线下的区域,r,ggplot2,gradient,R,Ggplot2,Gradient,我试图用视觉光谱颜色填充曲线下的区域来创建一条曲线 因此,曲线下区域的左侧为蓝色,而曲线下区域的右侧为红色 这是一个示例代码: library(ggplot2) set.seed(1) x <- seq(-4, 4, length=271) y <- dnorm(x) df <- data.frame(x,y) col <- rainbow(271) ggplot(data=df) + geom_line(aes(x=x, y = y)) + geom_ar

我试图用视觉光谱颜色填充曲线下的区域来创建一条曲线

因此,曲线下区域的左侧为蓝色,而曲线下区域的右侧为红色

这是一个示例代码:

library(ggplot2)

set.seed(1)
x <- seq(-4, 4, length=271)
y <- dnorm(x)

df <- data.frame(x,y)

col <- rainbow(271)

ggplot(data=df) + geom_line(aes(x=x, y = y)) + 
  geom_area(aes(y = y, x = x)) + theme_minimal() + 
  scale_color_gradient(low = '#FF0000FF', high = '#FF0006FF')
库(ggplot2)
种子(1)
这个怎么样

df$z  <- sqrt(abs(x))*sign(x)

ggplot(df, aes(x=x, y=y)) + 
  geom_line() +
  geom_area(aes(group=z, color=z)) + 
  theme_minimal() + 
  scale_color_gradient(low = 'blue', high = 'red')

df$z我想得到视觉光颜色的光谱

我的解决方案与上面的非常相似。我使用了
scale\u color\u gradientn()

[![library(ggplot2)
图书馆(RColorBrewer)
库(颜色渐变)
种子(1)
x
[![library(ggplot2)
library(RColorBrewer)
library(colorRamps)

set.seed(1)
x <- seq(-4, 4, length=271)
y <- dnorm(x)

df <- data.frame(x,y)

colfunc<-colorRampPalette(c("royalblue", "green", "springgreen", "yellow2", "yellow", "red", "red2", "red3", "red4"))

ggplot(df, aes(x=x, y=y)) +  
  geom_segment(aes(xend=x, yend=0, colour=abs(x)^0.7*sign(x)), size = 1) +
  scale_colour_gradientn(colours = colfunc(271))