将轴刻度标签中的一个字符更改为斜体,同时保留多行

Changing one character in axis tick labels to italic while keeping multiple lines

我有一个来自 ggplot2 的 geom_col,带有分类轴刻度的标签,如下所示:

该图是使用以下代码创建的:

library(tidyverse)

samplecounts=as.data.frame(c(1:4))
samplecounts$variable2=c("cat1","cat2","cat3","cat4")
names(samplecounts)[1]="variable1"

my.labels=c("Count category 1\n(n=1)","Count 2 of a different length\n(n=1)",
            "Countegory 3\n(n=1)","Count 4 cat\n(n=1)")

a=ggplot(data=samplecounts,aes(variable2,variable1))+
  geom_col(color='black')+
  scale_x_discrete(labels=my.labels) +
  coord_flip()
a

我的目标是仅将每个轴刻度标签中的“n”字符设为斜体。我已经在轴标题中看到了这样做的解决方案。在这种情况下,轴标题是“variable2”。我想更改轴刻度标签,“计数类别 4 (n=1) 等”。

旁注,斜体功能在我当前的 R 版本中不存在。我是 运行 R 4.0.2。

尝试使用 ggtext 包并将 ** 添加到您的文本链并在您的主题中使用 element_mardown() 像这样(更新:在降价语言中换行使用<br> 而不是 \n):

library(tidyverse)
library(ggtext)
#Data
samplecounts=as.data.frame(c(1:4))
samplecounts$variable2=c("cat1","cat2","cat3","cat4")
names(samplecounts)[1]="variable1"

my.labels=c("Count category 1<br>*(n=1)*","Count 2 of a different length<br>*(n=1)*",
            "Countegory 3<br>(*n=1*)","Count 4 cat<br>*(n=1)*")
#Plot
ggplot(data=samplecounts,aes(variable2,variable1))+
  geom_col(color='black')+
  scale_x_discrete(labels=my.labels) +
  theme(axis.text.y = element_markdown())+
  coord_flip()

输出: