我正在尝试以柱状图的形式绘制一个向量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的数字。
有人知道如何解决这个问题吗?
cut
函数进行切割:例如mydatacut = cut(x, c(-Inf, -100, 100, Inf))
。这将创建一个三级因子,然后您可以执行colors[as.numeric(mydatacut)]
,其中因子是在您的示例中为c("blue", "red", "blue")
。 - David Robinson