有没有办法改变轴标题部分的样式,同时保持其余部分不变?就我而言,我怎么能用斜体来表示
"细菌X"在Y轴标题?据我所知,命令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"))
答案 0 :(得分:42)
你可以这样做一个表达式:
my_y_title <- expression(paste("No. of ", italic("bacteria X"), " isolates with corresponding types"))
.... + labs(y=my_y_title)
答案 1 :(得分:15)
可以使用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
具有将轴标题渲染为markdown的效果。因此,*
中的文本将显示为斜体。
一个更简单的解决方案是使用mdthemes
程序包,该程序包提供的主题可以直接将文本解释为makrdown,即无需调用theme
。这是一个例子。
ggplot(mtcars, aes(hp, mpg)) +
geom_point() +
mdthemes::md_theme_classic() +
labs(title = "**Bold Title**", x = "*Italics axis label*")
答案 2 :(得分:0)
我相信RFelber的建议是您的追求。试试这个:
labs(x="Groups",y=expression('No. of'~italic(bacteria X)~'isolates with corresponding types'),fill="Var1")
我不需要使用bquote()函数。波浪号为引号之外的术语产生单个空格。