有没有办法改变轴标题的一部分的样式,同时保持其余部分不变?在我的情况下,我怎么能
在y轴标题中将"细菌X" 斜体化?据我所知,该命令theme(axis.title.y=element_text(face="italic"))只能改变整个y-aixs的标题,是吗?
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"))
Run Code Online (Sandbox Code Playgroud)
Her*_*oka 49
你可以做一个像这样的表达式:
my_y_title <- expression(paste("No. of ", italic("bacteria X"), " isolates with corresponding types"))
.... + labs(y=my_y_title)
Run Code Online (Sandbox Code Playgroud)
Tom*_*mmy 23
这可以使用能够实现element_markdown()从ggtext包。
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())
Run Code Online (Sandbox Code Playgroud)
请注意y 轴标题中的*周围bacteria X。设置axis.title.y为element_markdown具有将轴标题呈现为降价的效果。因此,里面的文字*将以斜体显示。
一个更简单的解决方案是使用mdthemes提供将文本解释为开箱即用的主题的包,即不需要调用theme. 这是一个例子。
ggplot(mtcars, aes(hp, mpg)) +
geom_point() +
mdthemes::md_theme_classic() +
labs(title = "**Bold Title**", x = "*Italics axis label*")
Run Code Online (Sandbox Code Playgroud)
TCS*_*TCS 15
我相信 RFelber 的建议正是您所追求的。尝试这个:
labs(x="Groups",
y=expression('No. of'~italic(bacteria X)~'isolates with corresponding types'),
fill="Var1")
Run Code Online (Sandbox Code Playgroud)
我不需要使用该bquote()功能。波浪号为引号之外的术语生成单个空格。