如何以斜体打印小写希腊字母 [ggplot 轴标题]
Posted
技术标签:
【中文标题】如何以斜体打印小写希腊字母 [ggplot 轴标题]【英文标题】:How to print lowercase Greek delta in italics [ggplot axis titles] 【发布时间】:2020-03-07 18:38:47 【问题描述】:我正在使用 ggplot2 包在 R 中绘制稳定同位素数据,并希望轴标题上的小写 delta 符号以斜体字打印。我正在使用 expression() 来构建轴标题,但是当我使用 unicode'\u03B4'
一点背景:符号 delta (δ) 是合法的 SI 数量符号,因此应始终以斜体字体打印。参见 Coplen, T. B. (2011)。表示稳定同位素比和气体比测量结果的指南和推荐术语。 质谱中的快速通信,25(17),2538-2560。 doi:10.1002/rcm.5129 https://onlinelibrary.wiley.com/doi/full/10.1002/rcm.5129
一些可重现的代码:
require(ggplot2)
set.seed(20)
df <- data.frame(d13C = rnorm(20, -23, 5),
DIC = rnorm(20, 4, 0.2),
d13CDIC = rnorm(20, -8, 2))
ggplot(df, aes(x = d13C, y = d13CDIC)) +
geom_point(aes(fill = DIC), pch = 21, cex = 5) +
labs(x = expression(italic(delta)^13*C~("\211"~VPDB)),
y = expression(italic("\u03B4")^13*C[DIC]~("\211"~VPDB))) +
theme_bw()
给出以下情节:
还有一个后续问题: 如何将绘图保存到 svg 设备?使用 ggsave 保存到 .png 时,它可以正确绘制。但是,在绘制到 .svg 设备时出现以下错误:
ggsave(filename = 'isotope_plot.svg', width = 5, height = 3, units = "in")
grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, : 此系列/设备的指标信息不可用
【问题讨论】:
将 δ 符号复制并粘贴到脚本中也会返回 d,其中需要 δ。例如表达式(斜体(δ)^13*C[DIC]~("\211"~VPDB)) 【参考方案1】:您可以使用 ggtext 执行此操作。也可能使为标签编写整个代码更简单一些。
library(ggplot2)
library(ggtext) # remotes::install_github("clauswilke/ggtext")
set.seed(20)
df <- data.frame(d13C = rnorm(20, -23, 5),
DIC = rnorm(20, 4, 0.2),
d13CDIC = rnorm(20, -8, 2))
ggplot(df, aes(x = d13C, y = d13CDIC)) +
geom_point(aes(fill = DIC), pch = 21, cex = 5) +
labs(
x = "*δ*<sup>13</sup>C (‰ VPDB)",
y = "*δ*<sup>13</sup>C<sub>DIC</sub> (‰ VPDB)"
) +
theme_bw() +
theme(
axis.title.x = element_markdown(),
axis.title.y = element_markdown()
)
由reprex package (v0.3.0) 于 2019 年 11 月 12 日创建
【讨论】:
不错的@Claus,成功了。这会是将来支持 cran 的软件包吗?如果可能的话,我更喜欢使用 base、ggplot2 或 cran 包 是的,当然。很可能在下一个 ggplot2 版本之后。它需要一些 ggplot2 修复来支持我想要添加的所有功能。以上是关于如何以斜体打印小写希腊字母 [ggplot 轴标题]的主要内容,如果未能解决你的问题,请参考以下文章
r 以ggplot2打印日期时间,也是日期格式X轴。在这个例子中每个滴答一天