【发布时间】:2015-07-29 16:42:54
【问题描述】:
我正在尝试创建一个颜色渐变随 x 轴和 y 轴变化的图。更具体地说,我正在尝试设置渐变,以便色调范围沿 x 轴变化,值沿 y 轴变化。
例如,我正在处理一条带有一些噪声的正弦曲线,沿 -pi 到 pi。
set.seed(5678)
x <- seq(-1*pi, 1*pi, 0.01)
y <- sin(x) + rnorm(length(y))
df <- cbind.data.frame(x, y)
ggplot(df, aes(x=x, y=y)) + geom_line()
现在我想对线条进行着色,以使色调沿 x 轴从红橙色到橙黄色再到黄绿色等,然后根据其 y 值在该范围内采用不同的值。所以x=-pi,y=2 可能是红色,y=-2 可能是黄色,而x=0,y=2 可能是绿色,y=-2 可能是蓝色。
有没有人尝试过创建这样的图表?
【问题讨论】:
-
不完全是您要查找的内容,但您可以尝试将
color映射到 x 和 y 的交互;df$xy <- x + y ; ggplot(df, aes(x=x, y=y,color=xy)) + geom_line() + scale_color_gradientn(colours=(c("red","orange","yellow","green"))) -
与
colorRampPalette、cols <- colorRampPalette(c("red", "orange", "yellow", "green"))(length(x)); ggplot(df, aes(x=x, y=y)) + geom_line(color=cols) + theme_bw()类似 -
@nongkrong 但颜色仅沿 x 轴变化,而 OP 希望它沿两个轴变化
-
@scoa 哦,好的,那么交互不起作用吗?
-
@nongkrong 这不是他们所要求的:通过交互,数据点 x=1 y=2 的颜色将与 x=2 y=1 的颜色相同。