我的目标是在矩阵中创建一个堆叠的条形图,其中矩阵中的每一列都是一个颜色不同的条形,每个条形代表列中所有行的总和。
这是我用来解决问题的虚拟数据和条形图脚本:
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),])
有什么建议吗?
答案 0 :(得分:0)
试试这个
v <- c("red","blue","green")
barplot(m, col=v, beside=FALSE)
数据矩阵的每一行都采用单一颜色