将轴刻度标签中的一个字符更改为斜体,同时保留多行[重复]
Posted
技术标签:
【中文标题】将轴刻度标签中的一个字符更改为斜体,同时保留多行[重复]【英文标题】:Changing one character in axis tick labels to italic while keeping multiple lines [duplicate] 【发布时间】:2021-01-11 23:23:44 【问题描述】:我有一个来自 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。
【问题讨论】:
***.com/questions/39282293/… 也许对你有帮助 【参考方案1】:尝试使用ggtext
包并将**
添加到您的文本链中,并在您的主题中使用element_mardown()
,如下所示(更新:在markdown 语言中,换行符使用<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()
输出:
【讨论】:
斜体有效,但现在 (n=1) 部分仍与类别标题位于同一行。注意到原始图中多条线的预期位置与此图之间的差异吗? 在文档中找到了解决方案。 使用 ggtext 而不是 \n 插入换行符,如上面的代码所示。 @coconn41 现在更新了,你在评论里打败了我。检查新的解决方案,让我知道它是否有效:)以上是关于将轴刻度标签中的一个字符更改为斜体,同时保留多行[重复]的主要内容,如果未能解决你的问题,请参考以下文章