Puntos de color en una gráfica de manera diferente dependiendo de un vector de valores


Estoy trazando la gráfica de abajo usando la función de gráfica de R. Es una trama de un vector 'shiftTime' de cambio en el tiempo. Tengo otro vector 'intensidad' de los valores de intensidad que van desde ~3 a ~9. Quiero colorear mis puntos en el gráfico basado en esos valores con un degradado de color. Los ejemplos puedo encontrar el color en el valor de los puntos trazados reales, por lo que en este caso los valores del vector 'shiftTime'. ¿También es posible utilizar un vector diferente, siempre y cuando los valores correspondientes estén en el mismo índice?

Mi trama

Author: Niek de Klein, 2012-03-30

3 answers

Aquí hay una solución usando gráficos base 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)

introduzca la descripción de la imagen aquí

 96
Author: joran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 16:33:18

Solución usando 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")

parcela

 17
Author: ROLO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 19:02:42

Para añadir una leyenda a la respuesta de joran en base R:

legend("topleft",title="Decile",legend=c(1:10),col =rbPal(10),pch=20)

Este ejemplo agrega ", cex = 0.8 " solo por belleza:

parcela multicolor con leyenda

 13
Author: purplemac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-24 15:19:58