【问题标题】:how do I control the number and placement of borders when using facet wrap in ggplot?在 ggplot 中使用 facet wrap 时如何控制边框的数量和位置?
【发布时间】:2019-12-25 14:58:46
【问题描述】:

我使用 ggplot 和 facet wrap 制作了一个图表,以显示我在 3 个不同年份的数据。我正在尝试删除顶部和右侧边框,因此每个图表仅在 y 轴和 x 轴上都有边框。这是我的图表代码

ggplot(dets_per_month, aes(x = month, y = ave)) +
  geom_bar(aes(fill = zone), position = "dodge", stat = "identity") +
  scale_fill_viridis_d(option = "plasma", name = "Zone") +
  ylim(0,3700) +
  xlab("Month") +
  ylab("Avergae Detections") +
 facet_wrap(vars(yearcollected),
            strip.position = "top") +
  facet_grid(yearcollected ~ .) +
  theme_bw() + 
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_blank(), 

        axis.line = element_line(),

        panel.border = element_line(),
        strip.text = element_text(size = 10, face = "bold"),
        strip.background = element_rect(fill = "white", colour = "white"))

我一直在玩panel.border,但我似乎无法获得我正在寻找的输出。 这是我的图表在这段代码中的样子:

有人知道如何控制分面环绕中边框的数量和位置吗?

【问题讨论】:

  • 不清楚你想要得到什么——你只是说这不是。如果没有数据样本,我们也无法运行您的代码。 See here 提出一个更容易帮助解决的 R 问题

标签: r ggplot2 graph border


【解决方案1】:

lemon 包中有 facet_rep_wrap()/facet_rep_grid 可以做到这一点

if (!require("pacman")) install.packages("pacman")
#> Loading required package: pacman
pacman::p_load(ggplot2, lemon)

p1 <- ggplot(mtcars, aes(x = cyl, y = mpg)) +
  geom_bar(aes(fill = gear), position = "dodge", stat = "identity") +
  facet_rep_wrap(vars(carb),
             strip.position = "top",
             scales = 'free_y') +
  theme_classic(base_size = 14) + 
  theme(strip.text = element_text(face = "bold"),
        strip.background = element_blank())
p1

由reprex package (v0.3.0) 于 2019 年 12 月 25 日创建

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 2016-07-19
    • 2019-08-04
    • 1970-01-01
    相关资源
    最近更新 更多