Генерация цветов для точек данных в R - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть несколько точек данных, таких как:

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 Ответ

3 голосов
/ 22 ноября 2011

Вот общая идея:

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 = "зеленый" и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...