如何为R中的特定分类变量指定特定颜色?

时间:2013-11-09 09:07:52

标签: r plot scatter

我是R的初学者并且有这个问题。我正在使用以下代码生成颜色列表,然后创建一个大型散点图矩阵。我想将特定颜色分配给矩阵的第一列(分类为4类)。运行此代码可以正常运行,但如何验证我打算为每个分类变量指定的颜色是否正确?

基本上我想要'控制'为绿色,'低'为橙色,'中'为棕色,'高'为黑色。

col.list<-c("green","orange","brown","black")

palette(col.list)

pairs(Indices[,4:17], col=Indices[,1])

感谢您的帮助!

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]的内容是一个因素,其级别的排序顺序与相应的颜色列表相同。