繁体   English   中英

在R中创建分组堆积条形的简单方法

[英]simple way to create grouped stacked bar in R

我有两个3x2矩阵A和B:

A:

          n2  n3
Part1     1   5
Part2     2   6
Part3     3   7

B:

          n2  n3   
Part1     5   1 
Part2     6   2   
Part3     7   3  

我想基于A和B的n2,n3列创建堆叠的条,然后将堆叠的条分组,以便将A和B的n2并排分组,而n3则相同。 这是我尝试过的:

  d1 <- read.csv("A.csv", header=T, dec=".",sep = " ")
  d1 <- subset(d1, select = c(n2, n3))

  d2 <- read.csv("B.csv", header=T, dec=".",sep = " ")
  d2 <- subset(d2, select = c(n2, n3))

  d <- cbind(d1[,1],d2[,1],d1[,2],d2[,2])

  barplot(t(d), beside=T, ,col=c("lawngreen","firebrick","deepskyblue"),
          space=c(0,0,0.2,0))

它产生: 在此处输入图片说明

哪些条被分组,但是没有堆叠,并且颜色也被误用。 当我将条形图更改为以下内容时,将产生以下图:

   barplot(t(d), col=c("lawngreen","firebrick","deepskyblue"), 
           space=c(0,0,0.2,0))

在此处输入图片说明

错误地堆叠和错误分组的条。 如果您是我的新手,请帮助我解决此问题,我们深感感谢:

barplot()使用输入矩阵的列将条形图分组。 使用它作为数据:

> (d <- matrix((1:7)[-4],ncol=2)[,c(1,2,2,1)])
     [,1] [,2] [,3] [,4]
[1,]    1    5    5    1
[2,]    2    6    6    2
[3,]    3    7    7    3

您可以从之前的代码中删除转置:

barplot(d, col=c("lawngreen","firebrick","deepskyblue"), space=c(0,0,0.2,0))

堆积条形图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM