R中具有不同颜色的直方图样图

时间:2012-11-13 16:19:50

标签: r plot

我试图以直方图样式绘制矢量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向量并不总是由数字123组成。在许多情况下,向量保存从1到6的数字。

有人知道如何解决这个问题吗?

3 个答案:

答案 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的数据(上)