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

Max*_*ers 5 plot r

我试图以data直方图样式绘制矢量.这总是很容易,因为plot(data, type="h")我正是我想要的.但是,颜色存在问题.我的矢量data看起来像这样:

 data = c(1,2,2,3,1,1,2,3,1,2,2,3, ... )
Run Code Online (Sandbox Code Playgroud)

我想看到的是,每个1都是用一种颜色绘制的,每种颜色都是2不同的颜色,每种颜色都是相同的3.我试图实现这一目标

 plot(data, type="h", col=c("red","blue","green")
Run Code Online (Sandbox Code Playgroud)

但它失败了R圈在颜色矢量上,所以第一个栏是红色,第二个是蓝色,第三个是绿色,第四个是红色,依此类推.

在一般的解决方案中,我非常感兴趣,因为我的data向量并不总是由数字组成1,2而且3.在许多情况下,向量保存从1到6的数字.

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

Dav*_*son 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])
Run Code Online (Sandbox Code Playgroud)

这有效,因为colors[data]看起来像:

print(colors[data])
#  [1] "red"   "blue"  "blue"  "green" "red"   "red"   "blue"  "green" "red"  
# [10] "blue"  "blue"  "green"
Run Code Online (Sandbox Code Playgroud)


joe*_*lme 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])
Run Code Online (Sandbox Code Playgroud)