如何用可见光谱颜色填充曲线下区域
How to fill area under curve with visual spectrum colors
我正在尝试创建一条曲线,其中视觉光谱颜色填充曲线下方的区域。
所以曲线下区域的左侧是蓝色,曲线下区域的右侧是红色。
这是示例代码:
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')
但我得到的只是曲线下方的黑色区域。
感谢您的帮助!
这个呢?
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')
屈服
我想获得可见光颜色的光谱。
我的解决方案与上面的解决方案非常相似。我用了 scale_colour_gradientn()
[![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))
我正在尝试创建一条曲线,其中视觉光谱颜色填充曲线下方的区域。
所以曲线下区域的左侧是蓝色,曲线下区域的右侧是红色。
这是示例代码:
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')
但我得到的只是曲线下方的黑色区域。
感谢您的帮助!
这个呢?
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')
屈服
我想获得可见光颜色的光谱。
我的解决方案与上面的解决方案非常相似。我用了 scale_colour_gradientn()
[![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))