首页 文章

R - 条形图显示按不同变量分组的2 y列的值的总和

提问于
浏览
-1

我想用 R 创建一个条形图,显示按变量分组的 2 columns 数据的总和 . 数据设置如下:

"city" "n" "y" <br>
mon 100 200 <br>
tor 209 300 <br>
edm 98 87 <br>
mon 20 76 <br>
tor 50 96 <br>
edm 62 27 <br>

得到的地块应该有城市作为 x-axis ,每个城市2个酒吧,1代表 "n “在那个城市的总和,另一个是 "y" 在该城市的总和 .

如果可能的话,还会在每个条形图中显示总和作为标签?

我尝试过以下方法:

d <- melt(data[,c('City','n','y')],id.vars = 1)

plot <- ggplot(d,aes(x = City,y = value)) + geom_bar(aes(fill = variable),stat = "identity",position = "dodge")

这将生成所需格式的绘图,但值不是组的总和 .

我尝试将数据聚合成这样的总和:

sum_data <- aggregate(. ~ City,data=raw_data,sum)

这给了我我想要的每个城市的总和,但由于某种原因,输出中缺少一个城市 .

使用此代码绘制图:

ggplot(sum_data,aes(x = City,y = n)) + geom_bar(aes(fill = y),stat = "identity",position = "dodge")

给出了一个条形图,每个城市有一个条形图,显示y的总和作为颜色渐变 . 不是我期望给出geom_bar中的“闪避”命令 .

谢谢 .

1 回答

  • 0

    用这种方式工作:

    使用readr导入数据,仅接收具有数值(“n”和“y”)的列和带有组(“city”)的列 .

    按组(“城市”)汇总数据,以便每个变量都有一个总和:

    sum_data <- aggregate(.~City__c,data=raw_data,sum)
    

    重塑数据,使组成为变量(将有3列:“City”,“variable”,“value”):

    library(reshape2)
    library(ggplot2)
    sums <- melt(sum_data)
    

    使用ggplot绘图:

    ggplot(sums, aes(x = City, y= value, fill = variable, ymax = 1000)) +
      geom_bar(stat="identity", width=.8, position = "dodge")
    

相关问题