如何在ggplot2的图例中斜体化一个类别
Posted
技术标签:
【中文标题】如何在ggplot2的图例中斜体化一个类别【英文标题】:How to italicize one category in a legend in ggplot2 【发布时间】:2018-07-19 04:41:08 【问题描述】:对于我在 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 package (v0.3.0) 于 2020-01-01 创建
【问题讨论】:
【参考方案1】:您可以使用expression
和italic
在标签上创建斜体文本。
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 package (v0.3.0) 于 2020-01-01 创建
【讨论】:
真正有帮助的回复 r.bot,感谢发帖!只是想注意,如果您想让两个图例条目左对齐,您可以添加以下内容:+ theme(legend.text.align = 0)
。有关更多信息,请参阅此条目:***.com/questions/26781676/…【参考方案2】:
我一直在研究一种更简单、更灵活的方法来实现这个目标,通过 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 package (v0.3.0) 于 2020 年 1 月 1 日创建
【讨论】:
以上是关于如何在ggplot2的图例中斜体化一个类别的主要内容,如果未能解决你的问题,请参考以下文章