R 如何在堆叠条形图中绘制两列

R 如何在堆叠条形图中绘制两列,r,ggplot2,graph,R,Ggplot2,Graph,我将感谢您在以下方面的帮助:我正在尝试建立一个堆叠的条形图。填充是业务(新业务和续订业务)的分割,Y轴是新业务/续订业务的数量,X轴是月份。在我的数据中,我有两年的历史,所以我希望每个月有两个堆叠的列,一个用于n-1年,一个用于n年。然而,我不知道如何做这最后一步 为了澄清,请在下面找到数据的图片、我到目前为止的图以及我的目标图 代码如下: ggplot(BUSINESS, aes(fill=Business, y=GWP_mio, x=Date)) + geom_bar(position

我将感谢您在以下方面的帮助:我正在尝试建立一个堆叠的条形图。填充是业务(新业务和续订业务)的分割,Y轴是新业务/续订业务的数量,X轴是月份。在我的数据中,我有两年的历史,所以我希望每个月有两个堆叠的列,一个用于n-1年,一个用于n年。然而,我不知道如何做这最后一步

为了澄清,请在下面找到数据的图片、我到目前为止的图以及我的目标图

代码如下:

ggplot(BUSINESS, aes(fill=Business, y=GWP_mio, x=Date)) + 
  geom_bar(position="stack", stat="identity") +
  scale_fill_manual(values = c("#009E73","Darkblue")) +
  scale_y_continuous(breaks=seq(0,18000000,1000000), labels = scales::comma_format(scale = 1/1000000, 
  accuracy = .1), limits = c(0,18000000)) + 
  theme_ipsum() +
  ggtitle('GWP development') +
  theme(plot.title = element_text(hjust=0.5, size=14, family="Calibri", face="bold"),
        legend.title = element_text(size=11, family="Calibri", face="bold"),
        axis.title.x = element_text(hjust=1, size=11, family="Calibri", face="bold"),
        axis.text.x = element_text(angle=90, hjust=1, size=11, family="Calibri"),
        axis.title.y = element_text(angle=0, hjust=1, size=10, family="Calibri", face="bold"))
任何帮助都将不胜感激

[
[]

您要求的是
位置='dodge'
位置='stack'
。实际上,我建议您使用镶嵌面:

数据 解决方案 但这不是你想要的。所以让我们做一些简单的事情。你必须把颜色/填充弄得乱七八糟,才能得到你想要的。但是这里我们添加了第一层,然后是第二层

N <- 24
dat <- data.table(
  date= rep(seq.Date(as.Date('2017-01-01'), as.Date('2018-12-01'), '1 month'), each= 2)
  , new= rpois(n= 2 * N, lambda= 5)
  , renew= rpois(n= 2 * N, lambda= 4)
)
dat[,year := data.table::year(date)]
dat[,month:= data.table::month(date)]
dat[, total := new + renew]

ggplot(dat, aes(x= month, y= total, fill= factor(year))) + 
  geom_bar(stat= 'identity', position= 'dodge', ) +
  geom_bar(data= dat, aes(x= month, y= new, fill= "black", colour= factor(year)), stat= 'identity', position= 'dodge') +
  scale_color_brewer(palette = "Dark2")

N您想要
年的色码吗
?您好dc37。不一定,就年而言可以区分。您好Alex!感谢您的评论,并通过查看其他一些威胁,我能够获得所需的图表:)
ggplot(dat, aes(x= month, y= units, fill= factor(year))) +
  geom_bar(position= 'dodge', stat='identity') + facet_grid(business_type ~ .) +
  theme(axis.text.x= element_text(angle= 90))
N <- 24
dat <- data.table(
  date= rep(seq.Date(as.Date('2017-01-01'), as.Date('2018-12-01'), '1 month'), each= 2)
  , new= rpois(n= 2 * N, lambda= 5)
  , renew= rpois(n= 2 * N, lambda= 4)
)
dat[,year := data.table::year(date)]
dat[,month:= data.table::month(date)]
dat[, total := new + renew]

ggplot(dat, aes(x= month, y= total, fill= factor(year))) + 
  geom_bar(stat= 'identity', position= 'dodge', ) +
  geom_bar(data= dat, aes(x= month, y= new, fill= "black", colour= factor(year)), stat= 'identity', position= 'dodge') +
  scale_color_brewer(palette = "Dark2")