如何斜体部分(一个或两个字)的轴标题

有没有办法在保持其余部分不变的情况下改变轴标题部分的样式?对我来说,我怎么能用斜体呢
“细菌 X”在 y 轴的标题?据我所知,命令 theme(axis.title.y=element_text(face="italic"))只能改变整个 y 轴的标题,是吗?

ggplot(fig1,aes(x=cf,y=Freq,fill=Var1)) +
geom_bar(stat="identity") +
labs(x="Groups",y="No. of bacteria X isolates with corresponding types",fill="Var1") +
theme(axis.title.y=element_text(face="italic"))
87952 次浏览

你可以这样表达:

my_y_title <- expression(paste("No. of ", italic("bacteria X"), " isolates with corresponding types"))
.... + labs(y=my_y_title)

我相信 RFelber 的建议是你想要的,试试这个:

labs(x="Groups",
y=expression('No. of'~italic(bacteria X)~'isolates with corresponding types'),
fill="Var1")

我不需要使用 bquote()函数。波浪线为引号之外的项产生单个空格。

这可以通过使用 ggtext包中的 element_markdown()来实现。

ggplot(fig1, aes(cf, Freq, fill = Var1)) +
geom_bar(stat = "identity") +
labs(
x = "Groups",
y = "No. of *bacteria X* isolates with corresponding types",
fill = "Var1"
) +
theme(axis.title.y = ggtext::element_markdown())

注意 y 轴标题中围绕 bacteria X*。将 axis.title.y设置为 element_markdown的效果是将轴标题呈现为标记。因此,*中的文本将在 斜体字中显示。

更简单的解决方案是使用 mdthemes包,它提供了将文本解释为 makrdown 的主题,即不需要调用 theme。举个例子。

ggplot(mtcars, aes(hp, mpg)) +
geom_point() +
mdthemes::md_theme_classic() +
labs(title = "**Bold Title**", x = "*Italics axis label*")

enter image description here