在R条形图中为每个条形图着色

时间:2014-08-20 08:51:20

标签: r matrix bar-chart

我有一个看起来像

的矩阵
4   1
7   2
4   1
2   3
12  4

其中左列指定条形图中每个条形的高度,右列指定具有十六进制颜色的矢量的索引。条形图中的每个条形都应该收到右栏中索引的颜色。有一个简单的方法吗?

问题是关于如何使用右列作为索引而不是直接作为R中的颜色。具有颜色的矢量被命名为颜色,如果右列是1,则以十六进制格式(带有#)的颜色是存储在颜色[1]中,即#ADCD00

1 个答案:

答案 0 :(得分:0)

# your data
m <- read.table(text="4   1
7   2
4   1
2   3
12  4", header=FALSE)

# plot
barplot(m[,1], col=m[,2])

结果:

enter image description here

请注意,条形图中使用的颜色来自palette()。您可以通过指定替代颜色矢量来使用不同的颜色。以下是一些例子:

library("colourlovers")
p <- clpalettes()
layout(matrix(1:4, nrow=2))
for(i in 1:4) barplot(m[,1], col = swatch(p[[i]])[[1]][m[,2]])

结果:

enter image description here