使用barplot()按R中的组对颜色编码堆积条形图

时间:2017-09-02 23:55:24

标签: r bar-chart

我的目标是在矩阵中创建一个堆叠的条形图,其中矩阵中的每一列都是一个颜色不同的条形,每个条形代表列中所有行的总和。

这是我用来解决问题的虚拟数据和条形图脚本:

m = matrix(1:9, ncol = 3, byrow = TRUE)
v = matrix(c("red", "blue", "green"), ncol=3, nrow=3, byrow=TRUE)
m #matrix of values
v #matrix of colors for each point

如果我只绘制第1行,则正确分配颜色

barplot(m[1,], col=v[1,])

如果我绘制1-3行没有指定颜色,数据堆叠正确:

barplot(m[c(1:3),])

如果我用BESIDE = TRUE绘制1-3行,颜色代码正确(但显然没有堆叠)

barplot(m[c(1:3),], col=v[c(1:3),], beside = TRUE)

如果我尝试绘制第1-3行,数据堆栈正确,但不会根据需要应用颜色编码:

barplot(m[c(1:3),], col=v[c(1:3),])

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

试试这个

v <- c("red","blue","green")
barplot(m, col=v, beside=FALSE)

数据矩阵的每一行都采用单一颜色