根据值的向量,绘图中的颜色点不同

时间:2012-03-30 16:09:13

标签: r colors plot gradient

我正在使用R的绘图功能绘制下图。它是时间偏移的矢量'shiftTime'的图。我有另一个强度值的矢量'强度',范围从~3到~9。我想基于具有颜色渐变的那些值在绘图中为我的点着色。我可以在实际绘制点的值上找到颜色的示例,因此在这种情况下,矢量'shiftTime'的值。是否也可以使用不同的向量,只要相应的值在同一索引上?

My plot

3 个答案:

答案 0 :(得分:99)

这是使用基础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

答案 1 :(得分:18)

使用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

答案 2 :(得分:17)

在基础R中为joran的答案添加一个图例:

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

此示例添加&#34;,cex = 0.8&#34;只是为了美观:

multicoloured plot including legend