如何在带有特殊字符的 ggplot 中使用粗体和表达式?

How can I use bold and expression in ggplot with special characters?

提问人:Antonio Manco 提问时间:9/12/2019 最后编辑:iagoAntonio Manco 更新时间:9/12/2019 访问量:2587

问:

我认为这很简单。

我在 ggplot2 的表达式函数中使用粗体。 这对我来说很清楚,而且有效。 但是当我将它与特殊字符(例如 have 或 to have 作为下标)一起使用时,它不起作用。 实际上,它不会使特殊字符加粗。mu*molμmolH[2]*O2

我尝试在 ggplot 中使用我知道的带有表达式的粗体函数。

我只向你展示我用来设置标签的绘图代码的字符串。

scale_y_continuous(sec.axis = sec_axis(trans = ~ ./5, name = expression(bold(atop(H[2]*O,(mu*mol~m^bold("-2")~s^bold("-1"))))),breaks=c(-3,-1.5,0,1.5,3)),breaks=seq(-10,20,10))

在图中,您可以看到不是粗体,下标也不是粗体。μ2H2O

r ggplot2 标签 特殊字符

评论

0赞 rawr 9/12/2019
你试过引用 2 吗?H["2"]
0赞 Antonio Manco 9/12/2019
不。我不知道这个功能。它是如何工作的?

答:

6赞 Arienrhod 9/12/2019 #1

在表达式中使用单个语句就足够了,但必须用引号将每个下标和上标括起来。这仍然会让你的希腊字母没有粗体,b / c没有粗体符号字体(见这里)。但是,您可以通过替换为 unicode 字符来规避此问题(您可以在此处找到它们)。boldmuplotmathmu

在这里,我刚刚使用了标准数据集。mtcars

library(ggplot2)
ggplot(mtcars, aes(x = wt, y = qsec)) +
geom_line() +
scale_y_continuous(sec.axis = sec_axis(trans = ~ ./5, 
                                       name = expression(bold(atop(H["2"]*O,("\u03bc"*mol~m^"-2"~s^"-1"))))))

enter image description here

评论

0赞 Antonio Manco 9/12/2019
很棒的@Arienrhod!我不知道这个代码列表。谢谢!你很容易解决我的问题!