Цветовые точки на графике по-разному в зависимости от вектора значений
Я рисую график ниже, используя функцию R-графика. Это график вектора "shiftTime" сдвига во времени. У меня есть еще один вектор "интенсивность" значений интенсивности от ~ 3 до ~ 9. Я хочу покрасить свои точки в сюжет, основываясь на этих значениях с градиентом цвета. В примерах я могу найти цвет по значению фактических построенных точек, поэтому в этом случае значения вектора "shiftTime". Можно ли также использовать другой вектор, если соответствующие значения находятся на одном и том же индексе?
![My plot]()
Ответы
Ответ 1
Здесь решение с использованием базовой графики R:
#Some sample data
x <- runif(100)
dat <- data.frame(x = x,y = x^2 + 1)
#Create a function to generate a continuous color palette
rbPal <- colorRampPalette(c('red','blue'))
#This adds a column of color values
# based on the y values
dat$Col <- rbPal(10)[as.numeric(cut(dat$y,breaks = 10))]
plot(dat$x,dat$y,pch = 20,col = dat$Col)
![enter image description here]()
Ответ 2
Решение с использованием ggplot2:
library(ggplot2)
#Some sample data
x <- sort(runif(100))
dat <- data.frame(x = x,y = x^2 + 1)
# Some external vector for the color scale
col <- sort(rnorm(100))
qplot(x, y, data=dat, colour=col) + scale_colour_gradient(low="red", high="blue")
![plot]()
Ответ 3
Чтобы добавить легенду к joran answer в базе R:
legend("topleft",title="Decile",legend=c(1:10),col =rbPal(10),pch=20)
В этом примере добавляется ", cex = 0,8" только для красивости:
![многоцветный сюжет, включая легенду]()