对齐图例水平 ggplot2

Align legend horizontal ggplot2

我很好奇是否有办法在 ggplot2ggnewscale:

中水平而不是垂直堆叠图例

使用 mtcars 数据集的示例:

ggplot(mtcars, aes(x = mpg, y = cyl)) +
  geom_point(aes(col = gear)) +
  ggnewscale::new_scale_color() +
  geom_point(aes(col = carb))

例如情节

您可以通过 guides(...):

单独控制图例
library(ggnewscale)

ggplot(mtcars, aes(x = mpg, y = cyl)) +
  geom_point(aes(col = gear)) +
  ggnewscale::new_scale_color() +
  geom_point(aes(col = carb))+
  theme(legend.direction = "vertical",
      legend.box = "horizontal",
      legend.position = "right") +
  guides(size=guide_legend(direction='horizontal'))