【问题标题】:How can I make the legend horizontal in the euler plot in R?如何在 R 的欧拉图中使图例水平?
【发布时间】:2021-03-12 01:05:11
【问题描述】:

我很难设计这个欧拉图。我的主要问题之一是我希望图例位于底部,但水平显示变量。它们垂直堆叠起来看起来很奇怪。

如果有人也知道如何调整边距,在整个情节周围添加边框,并添加字幕,我也被这些东西难住了。我已经尝试过 par(mar),但没有任何效果。

fit1 <- euler(c("Day 1" = 69, "Day 2" = 109, "Day 3" = 152,
                "Day 1&Day 2" = 11, "Day 1&Day 3" = 18, "Day 2&Day 3" = 28,
                "Day 1&Day 2&Day 3" = 2))

col <- c("#66D2D6", "#FBC740", "#E56997")

plot(fit1,
     quantities = TRUE,
     fills = list(fill = col, alpha = 0.8),
     edges = "black",
     main = list(label = "test", cex = 0.9),
     legend = list(side = "bottom"))

【问题讨论】:

  • 我没怎么用过lattice,但是试着把columns = 3添加到你的图例列表中……借鉴this blog post的想法
  • @GregorThomas: eulereulerr 包中,不在lattice 中。

标签: r plot venn-diagram eulerr


【解决方案1】:

euler 对象的plot 方法使用grid::grid.legend() 绘制图例。您可以在plotlegend 参数中指定grid.legend 的任何参数(实际上调用plot.euler)。要获得水平图例,请使用

plot(fit1,
     quantities = TRUE,
     fills = list(fill = col, alpha = 0.8),
     edges = "black",
     main = list(label = "test", cex = 0.9),
     legend = list(side = "bottom", nrow = 1, ncol = 3))

【讨论】:

  • 谢谢!!我曾分别尝试过 ncol = 3 和 nrow = 1,但没有意识到它们需要一起使用。这非常有效。
  • 这对于grid::grid.legend 来说不是必需的,但plot.euler 在它的legend 参数中有点搞砸了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 2015-03-06
  • 1970-01-01
相关资源
最近更新 更多