我试图以直方图样式绘制矢量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的数字。
有人知道如何解决这个问题吗?
答案 0 :(得分:11)
您需要创建一个长度相同的颜色矢量,如下所示:
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"
答案 1 :(得分:6)
尝试使用一般方法:
data = c(1,2,2,3,1,1,2,3,1,2,2,3,4,5,6,7,12,3)
colors = rainbow(length(unique(data)))
plot(data, type="h", col=colors[data])
答案 2 :(得分:0)
colors = rainbow(length(unique(data)));
hist(data, col=colors[data])
使用先生。 lapalme的数据(上)