首页 文章

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

提问于
浏览
0

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

基本上我想要实现“控制”的绿色,“低”的橙色,“中”的棕色和“高”的黑色 .

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

palette(col.list)

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

感谢您的任何帮助!

1 回答

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

相关问题