对于 ggplot 图,我希望图例的值(此处为 0 和 1)位于它们所代表的颜色之上,而不是它们的一侧。我的意思不是在彩色方块的左侧、右侧、上方或下方,而是在方块内部。这将导致红色方块内的数字 0 和蓝色方块内的数字 1。如何才能做到这一点?

ggplot(mtcars, aes(factor(cyl), fill = factor(vs))) +
geom_bar() +
theme(legend.position = "top",
    legend.direction = "horizontal") +
guides(color = guide_legend(title.position = "left", label.position = "top"))

最佳答案

由于您使用的是 fill,因此您需要在 guides 中使用填充,然后使用 label.vjusttitle.vjust 使所有内容对齐。

library(tidyverse)

ggplot(mtcars, aes(factor(cyl), fill = factor(vs))) +
  geom_bar() +
  theme(legend.position = "top",
        legend.direction = "horizontal") +
  guides(fill = guide_legend(label.vjust = -7, label.position = "top", title.vjust = 0.2))

reprex package (v0.2.1) 于 2018-11-23 创建

关于r - 将 ggplot 图例标签直接放置在其填充颜色上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53454236/

10-12 17:23