首页 > 解决方案 > 如何从不同的数据库中创建彼此相邻的 geom_bar

问题描述

我正在努力创建一个简单的条形图,其中条形图彼此相邻(如图所示)。在此处输入图像描述

数据来自不同的数据库。

Database A
 Month     Cost
1 Dec      3009       
2 Dec      3468       
3 Nov      3420        
4 Oct      3162



Database B
    Month     Cost
1 Dec      309       
2 Nov      3481       
3 Nov      3419        
4 Oct      3120     

对于条形图,我试图显示一个以 X 轴为月份的条形图,对于 12 月,A 将有 2(总数,而不是值),B = 1,对于 11 月, A 有 1,B 有 2。谢谢!

标签: rggplot2geom-bar

解决方案


您可以将一个 id 变量添加到您的数据集,按行绑定它们并制作一个标准条形图,将 id 映射到fill

db1 <- read.table(text = "Month     Cost
1 Dec      3009       
2 Dec      3468       
3 Nov      3420        
4 Oct      3162", header = TRUE)

db2 <- read.table(text = "Month     Cost
1 Dec      309       
2 Nov      3481       
3 Nov      3419        
4 Oct      3120", header = TRUE)

library(ggplot2)
library(dplyr)

db <- dplyr::bind_rows(list(A = db1, B = db2), .id = "id")
db$Month <- factor(db$Month, levels = month.abb)
ggplot(data = db, mapping = aes(Month, fill = id)) +
  geom_bar(position = "dodge")


推荐阅读