我知道这很简单,但我无法通过搜索找到解决方案。
我有一个整数矩阵,其整数值来自1:n
(通过将一些因子转换为索引而创建)。我希望将这些值与n
颜色的矢量相匹配,以十六进制字符串值(使用scales
包生成)给出。
Y <- sample(1:7, 20, replace=TRUE) # for example
classcols <- c("#F8766D", "#C49A00", "#53B400", "#00C094", "#00B6EB", "#A58AFF",
"#FB61D7")
# manually replace:
Y[Y==1] <- classcols[1]
我的摄取速度有点慢,除了上面的手动操作外无法解决这个问题。原因可能表明我是多么愚蠢:
plot(X, col=Y) # X has same shape as Y. I want to control the colours a bit more.
答案 0 :(得分:1)
听起来好像你只是想这样做:
classcols[Y]
# [1] "#C49A00" "#53B400" "#00B6EB" "#FB61D7" "#C49A00" "#FB61D7" "#FB61D7" "#00B6EB"
# [9] "#00B6EB" "#F8766D" "#C49A00" "#C49A00" "#00B6EB" "#53B400" "#A58AFF" "#00C094"
# [17] "#A58AFF" "#FB61D7" "#53B400" "#A58AFF"
在这里,我刚刚使用“Y”的值来索引“classcols”中的值。当然,您可以根据需要将输出重新分配给另一个矢量。