如何将图例定位在左下角并将标题移动到右侧或顶部?

3

我一直在寻找这个问题的答案,但是我无法找到任何信息。 我创建了一个ggplot图形,并希望在图形下方显示一个水平图例。图例应该在左下角,标题应该在其右侧或上方。我成功地旋转了图例,但我无法将标题移动到想要的位置。有人可以帮忙吗?

My_Theme = theme(
legend.text = element_text(size=12),
legend.title.align =0,
legend.position = "bottom", 
legend.box = "horizontal", 
legend.title = element_text(size=14, vjust=0.5, hjust = 0.3))

这让我困扰: 这个奇怪的图例位置

我希望将图例移动到左侧,但将其标题放在右侧或上方。目前,标题与图例混为一体,使其难以阅读。
有人能帮忙吗? 非常感谢,祝节日愉快 :)
2个回答

8

mtcars为例,可以这样实现:

  1. 标题的位置可以通过guide_colorbar和参数title.position来设置。

  2. 图例可以通过主题选项legend.position = "bottom"legend.justification = "left"来放置在左下角。

  3. 关于图例的方向,我不确定你想要的结果是什么。因此我使用了legend.direction="vertical",使图例垂直显示。

library(ggplot2)

ggplot(mtcars, aes(hp, mpg, color = mpg)) +
  geom_point() +
  labs(color = "I'm a long\nlegend title") +
  guides(color = guide_colorbar(title.position = "top")) +
  theme(
    legend.text = element_text(size=12),
    legend.title.align = 0,
    legend.position = "bottom", 
    legend.justification = "left",
    legend.direction = "vertical",
    legend.title = element_text(size=14, vjust = .5, hjust = .3))


1
感谢您的回答。
即使我觉得之前已经使用了多个部分和变化,但最终使用了您的代码并成功实现了 :)
最终我使用了:
 labs(fill = "Mittleres Belastungserleben") +  
  guides(fill = guide_colorbar(title.position = "top",
                              frame.colour = "black",
                               ticks.colour = "black",
                               ticks.linewidth = 2,
                               ticks = TRUE, 
                               label.position = "bottom")) +
  theme(
    legend.text = element_text(size=12),
    legend.title.align = 0,
    legend.position = "bottom", 
    legend.justification = "left",
    legend.direction = "horizontal",
    legend.title = element_text(size=14, vjust = .5, hjust = .1))

这最终看起来像是this

再次感谢,也许它能帮助到其他人


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接