9

对于我在 ggplot2 中的图例,我有 2 个类别,如何仅将 1 个类别斜体而不将其他类别斜体?

例如,考虑下面的情节。如何以斜体设置“手动”?

library(ggplot2)

ggplot(data = mtcars, aes(x = as.factor(am), fill = as.factor(am))) + 
  geom_bar() + 
  scale_fill_discrete(
    "Transmission",
    breaks = c(0, 1),
    labels = c("Automatic", "Manual")
  )

reprex 包(v0.3.0)于 2020 年 1 月 1 日创建

4

2 回答 2

14

您可以使用expressionitalic在标签上创建斜体文本。

library(ggplot2)

ggplot(data = mtcars, aes(x = as.factor(am), fill = as.factor(am))) + 
  geom_bar() + 
  scale_fill_discrete(
    "Transmission",
    breaks = c(0, 1),
    labels = c("Automatic", expression(italic("Manual")))
  )

reprex 包(v0.3.0)于 2020 年 1 月 1 日创建

于 2018-02-08T16:34:57.550 回答
10

我一直在研究一种更简单、更灵活的方法来实现这个目标,通过 ggtext 包在 ggplot 中启用 markdown 样式。这目前正在开发中,但应该很快(2020 年初)发布到 CRAN。

library(ggplot2) # may require: remotes::install_github("tidyverse/ggplot2")
library(ggtext)  # remotes::install_github("clauswilke/ggtext")

ggplot(data = mtcars, aes(x = as.factor(am), fill = as.factor(am))) + 
  geom_bar() + 
  scale_fill_discrete(
    "Transmission",
    breaks = c(0, 1),
    labels = c("Automatic", "*Manual*")
  ) +
  theme(legend.text = element_markdown())

reprex 包(v0.3.0)于 2020 年 1 月 1 日创建

于 2020-01-01T17:29:04.857 回答