Генерация цветов для точек данных в 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 ответ
Решение
Вот общая идея:
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="зеленый" и т. д.)