我正在尝试绘制一个向量 data
以直方图风格。这总是很容易,因为 plot(data, type="h")
正是我想要的。但是,颜色有问题。我的矢量 data
看起来像这样:
data = c(1,2,2,3,1,1,2,3,1,2,2,3, ... )
我想看到的是,每个
1
以一种颜色绘制,每个颜色
2
以不同的颜色和每个
3
同样地。我试图用
plot(data, type="h", col=c("red","blue","green")
但它失败了,因为 R 循环了颜色向量,所以第一个条是红色,第二个是蓝色,第三个是绿色,第四个是红色,依此类推。
我对通用解决方案很感兴趣,因为我的
data
向量并不总是由数字
1
组成,
2
和
3
.在很多情况下,向量包含 1 到 6 的数字。
有谁知道如何解决这个问题?
请您参考如下方法:
您需要创建一个长度相同的颜色向量,如下所示:
data = c(1,2,2,3,1,1,2,3,1,2,2,3)
colors = c("red","blue","green")
plot(data, type="h", col=colors[data])
这是有效的,因为
colors[data]
好像:
print(colors[data])
# [1] "red" "blue" "blue" "green" "red" "red" "blue" "green" "red"
# [10] "blue" "blue" "green"