ggplot2:标签表达式中的字体样式

19

在标签中不用表达式更改字体和大小可以很好地工作。这是我遇到问题的代码,其中需要使用标签表达式来更改字体。

p <- ggplot(data = mtcars, aes(x=wt, y=mpg)) + 
    geom_point() + 
    labs(x="Weight", y=expression(paste("mpg (  ", m^{-2}, ")"))) + 
    theme(axis.title.x = element_text(family="serif", face="bold", 
        size=12, angle=00, hjust=0.54, vjust=0)) + 
    theme(axis.title.y = element_text(family="serif", face="bold", 
        size=12, angle=90, vjust=0.25))

p

输出

非常感谢任何帮助。谢谢


@BenBolker:你能给我一个例子吗?谢谢。 - MYaseen208
感谢PatrickT更新了一个过时的问题和答案。 - IRTFM
1个回答

26

我认为问题不在于expression是否存在,虽然您没有明确说明您看到了什么,所以很难确定。在Mac上,xlab以粗体衬线字体呈现,但ylab不是粗体(尽管它是衬线字体)。如果我在expression函数内部使用plotmath的bold,那么它就可以成功。

p <- ggplot(data = mtcars, aes(x=wt, y=mpg)) + 
geom_point() + 
    labs(x = "Weight", y = expression(bold(mpg (m^-2) ))) +
    theme(axis.title.y = element_text(family="serif", 
        size = 12, angle = 90, vjust = 0.25)) +
    theme(axis.title.x = element_text(family="serif",
        size = 12, angle = 0, hjust = 0.54, vjust = 0))
p

一如既往,图形设备通常都与操作系统有关,您没有提供任何关于您操作系统的提示,因此我们无法进一步评论。

(编辑:如果您引用指数-2,还可以将其加粗。)

expression( bold(mpg (m^bold("-2")) ) ) )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接