2

我有一个来自 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。

4

1 回答 1

3

尝试使用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()

输出:

在此处输入图像描述

于 2020-09-25T15:46:18.537 回答