我是R的初学者并且有这个问题。我正在使用以下代码生成颜色列表,然后创建一个大型散点图矩阵。我想将特定颜色分配给矩阵的第一列(分类为4类)。运行此代码可以正常运行,但如何验证我打算为每个分类变量指定的颜色是否正确?
基本上我想要'控制'为绿色,'低'为橙色,'中'为棕色,'高'为黑色。
col.list<-c("green","orange","brown","black")
palette(col.list)
pairs(Indices[,4:17], col=Indices[,1])
感谢您的帮助!
答案 0 :(得分:1)
你这样做的方式是正确的。如果你想确定颜色确实与你的组相对应,你可以这样做(例如这里有一个可重复的例子):
set.seed(1)
a <- data.frame(Group=factor(sample(c("control","low","medium","high"),20,TRUE),
levels= c("control","low","medium","high")),
x=rnorm(20),y=rnorm(20))
col.list <- c("green","orange","brown","black")
palette(col.list)
pairs(a[,2:3], col=a[,1])
col=a[,1]
的作用实际上是palette()[a[,1]]
(如果列的内容是因子或整数,则有效),所以让我们看看:
palette()[a[,1]]
[1] "orange" "orange" "brown" "black" "green" "black" "black" "brown" "brown" "green" "green" "green" "brown" "orange"
[15] "black" "orange" "brown" "black" "orange" "black"
table(a[,1], palette()[a[,1]])
black brown green orange
control 0 0 4 0
low 0 0 0 5
medium 0 5 0 0
high 6 0 0 0
您唯一需要担心的是Indices[,1]
的内容是一个因素,其级别的排序顺序与相应的颜色列表相同。