Я пытаюсь создать график, в котором цветовой градиент изменяется как по оси x, так и по оси y. В частности, я пытаюсь настроить градиенты так, чтобы диапазон оттенков изменялся вдоль оси x, и значение менялось вдоль оси y.Изменение градиента с использованием ggplot2 в R
Для примера я работаю с кривой синуса с некоторым шумом вдоль -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()
Теперь я хочу, чтобы раскрасить линию так, что оттенок переходит от красно-оранжевого до оранжево-желтого до желто-зеленого и т.д. вдоль оси х, а затем будет принимать различные значения в этом диапазоне в зависимости от его значение y. Таким образом, в x=-pi
, y=2
может быть красным, а y=-2
может быть желтым, а в x=0
, y=2
может быть зеленым и y=-2
может быть синий.
Кто-нибудь пытался создать такой граф?
Не то, что вы ищете, но вы можете попытаться сопоставить «цвет» с взаимодействием x и y; 'df $ xy <- x + y; ggplot (df, aes (x = x, y = y, color = xy)) + geom_line() + scale_color_gradientn (colors = (c ("красный", "оранжевый", "желтый", "зеленый"))) ' – scoa
И аналогично «colorRampPalette», 'cols <- colorRampPalette (c (« красный »,« оранжевый »,« желтый »,« зеленый »)) (длина (x)); ggplot (df, aes (x = x, y = y)) + geom_line (color = cols) + theme_bw() ' – jenesaisquoi
@nongkrong, но тогда цвет меняется только вдоль оси x, тогда как OP хочет, чтобы он изменялся вдоль обоих axes – scoa