【问题标题】:ggplot2 - How to plot graphs side by side leaving only one legendggplot2 - 如何并排绘制图形,只留下一个图例
【发布时间】: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))

欢迎任何其他通用格式/代码之一

【问题讨论】:

  • 顺便提一下,plot2012plot2016 是一样的。您似乎忘记将df 子集化为Year

标签: r ggplot2 graph position


【解决方案1】:

您可以将facet_grid 添加到您的ggplot 通话中。

ggplot(df, aes(x = Group, y = Variable)) +
  geom_bar(aes(fill = Category), stat = 'identity') +
  ylim(0,500) +
  labs(y = 'Variable') +
  # Generate plots as panel based on Year
  facet_grid(. ~ Year) +
  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))

【讨论】:

    猜你喜欢
    • 2021-02-13
    • 2020-05-30
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2016-01-01
    相关资源
    最近更新 更多