在R中创建条形图时遇到了一个小问题。有3个变量:

a <- c(3,3,2,1,0)
b <- c(3,2,2,2,2)
c <- 0:4

条形图应按“a”和“c”分组,“b”应堆叠在“a”上方。单独进行分组和堆叠很简单:
barplot(rbind(a,c), beside=TRUE)
barplot(rbind(a,b), beside=FALSE)

如何在一张图表中同时完成两项操作?

最佳答案

为此,需要考虑barplot如何绘制堆积的条形图。基本上,您需要在适当的地方为它提供一些值为0的数据。使用您的数据:

mydat <- cbind(rbind(a,b,0),rbind(0,0,c))[,c(1,6,2,7,3,8,4,9,5,10)]
barplot(mydat,space=c(.75,.25))

要了解幕后情况,请看mydat:
> mydat
  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
a    3    0    3    0    2    0    1    0    0     0
b    3    0    2    0    2    0    2    0    2     0
     0    0    0    1    0    2    0    3    0     4

在这里,您将使用三个值(a的值,b的值,c的值)绘制每个条形图。 mydat矩阵的每一列都是一个条形图,对其进行排序,以使ab条形图适本地散布在c条形图上。您可能想要在间距和颜色上玩转。

显然已经在R-help various times without great solutions上讨论了此版本,因此希望这会有所帮助。

关于R:有两组的条形图,其中一组堆叠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18081102/

10-14 14:08