2011-11-22 40 views
0

我有一些数据点,例如:生成用于数据点的颜色中的R

1.342 0.1839 1.1 2.210 

,我想生成具有

0-1: red 
1-2: green 
2-3: blue 

所以对于这个向量的向量,这将是

red green green blue 

那样,我可以用颜色绘图,点将根据我的数据点的值进行着色。

这是一个可重复的例子,它为什么错了。有些点是黑色的:

library(rgl) 
library(Rcmdr) 
x <- c(1:10) 
y <- c(2,4,5,1,8,4,6,2,3,1) 
z <- c(3,6,1,7,8,3,5,5,7,9) 
c <- c(0.1, 0.2, 1.2, 1.8, 2.4, 1.2, 0.6, 0.6, 1.3, 2.1) 

cols <- cut(c, breaks=c(0, 1, 2, 3), labels=c("red", "green", "blue")) 

scatter3d(x,y,z,residuals=F,fit=NA,point.col=cols) 
+1

尝试'cut(x,0:3,labels = c('red ','green','blue'))' – Ramnath

回答

3

这里的总体思路:

dat <- c(1.342, 0.1839, 1.1, 2.210) 
plot(dat, 
    col = as.character(cut(dat, 
          breaks=c(0, 1, 2, 3), 
          labels=c("red", "green", "blue"))), 
    pch = 16) 

(注意,cut()值是一个因素,所以必须被包裹在as.character()否则,将被解释通过col=作为一个数字向量(总是)1 =“黑色”,2 =“红色”,3 =“绿色”等等)

+0

hm这不适用于scatter3d。颜色出现黑色,绿色和红色,而不是红色,绿色和蓝色。任何想法为什么? – CodeGuy

+0

我的不好,现在修复了。当需要成为角色矢量时,“cols”是一个因素。 –

+0

如何添加一个图例来指示颜色所指的范围? – g256