【发布时间】:2017-08-01 03:28:21
【问题描述】:
基于下面的示例数据集,我正在尝试制作 2 个图表并将它们并排放置。我曾尝试使用 cowplot 包来做到这一点。最后的输出真的很乱。
有没有一种方法可以将它们并排绘制,仅显示 1 个图例,集中在底部(因为两个图包含相同的元素)?
df <- data.frame(Year = c(rep(2012,5), rep(2016,5),
rep(2012,5), rep(2016,5),
rep(2012,5), rep(2016,5)),
Category = rep(c('A1','A2','A3','A4','A5'),6),
Group = rep(c('T1','T1','T1','T1','T1',
'T2','T2','T2','T2','T2',
'T3','T3','T3','T3','T3'),2),
Variable = runif(30,0,100))
plot2012 <- ggplot(df, aes(x = Group, y = Variable)) +
geom_bar(aes(fill = Category), stat = 'identity') +
ylim(0,500) +
labs(y = 'Variable') +
theme(legend.position = 'bottom',
legend.title = element_blank(),
axis.title = element_text(size = 10),
legend.text = element_text(size = 10),
axis.text = element_text(size = 10))
plot2016 <- ggplot(df, aes(x = Group, y = Variable)) +
geom_bar(aes(fill = Category), stat = 'identity') +
ylim(0,500) +
labs(y = 'Variable') +
theme(legend.position = 'bottom',
legend.title = element_blank(),
axis.title = element_text(size = 10),
legend.text = element_text(size = 10),
axis.text = element_text(size = 10))
欢迎任何其他通用格式/代码之一
【问题讨论】:
-
顺便提一下,
plot2012和plot2016是一样的。您似乎忘记将df子集化为Year。