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

R 将轴刻度标签中的一个字符更改为斜体,同时保留多行,r,ggplot2,italic,ggtext,R,Ggplot2,Italic,Ggtext,我有一个来自ggplot2的geom_col,带有分类轴刻度标签,如下所示: 该绘图是使用以下代码创建的: library(tidyverse) samplecounts=as.data.frame(c(1:4)) samplecounts$variable2=c("cat1","cat2","cat3","cat4") names(samplecounts)[1]="variable1" m

我有一个来自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”字符斜体化。我在axis标题中看到了这样做的解决方案。在这种情况下,轴标题为“variable2”。我希望更改轴刻度标签,“计数类别4(n=1)等”


请注意,在我当前版本的R中不存在斜体函数。我正在运行R 4.0.2。

尝试使用
ggtext
包,将
**
添加到文本链中,并在主题中使用
元素\u mardown()
更新:在降价语言中,在
\n
上,换行符使用

):

库(tidyverse)
图书馆(ggtext)
#资料
采样计数=作为数据帧(c(1:4))
样本计数$variable2=c(“cat1”、“cat2”、“cat3”、“cat4”)
名称(采样计数)[1]=“variable1”
my.labels=c(“计数类别1
*(n=1)*”,“计数长度不同的2
*(n=1)*”, “Countegory 3
(*n=1*)”,“Count 4 cat
*(n=1)*”) #密谋 ggplot(数据=样本数,aes(变量2,变量1))+ 几何图形颜色(颜色=黑色)+ 缩放x离散(标签=my.labels)+ 主题(axis.text.y=element\u markdown())+ coord_flip()
输出:


也许这有助于您使用斜体,但现在(n=1)部分仍然与类别标题在同一行上。注意原始绘图中多行的预期位置与此绘图中多行的预期位置之间的差异吗?在文档中找到了解决方案。
使用ggtext插入一个换行符,而不是如上面代码所示。@coconn41现在更新,您在注释中击败了我。检查t他找到了新的解决方案,并告诉我是否有效:)
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()