Как напечатать строчную греческую дельту курсивом [названия осей ggplot]
Я рисую данные стабильных изотопов в R с помощью пакета ggplot2 и хочу, чтобы дельта-символы в нижнем регистре на заголовках осей были напечатаны курсивом. Я использую выражение () для создания заголовков осей, но символ дельты не будет напечатан курсивом при вызове как 'дельта' или напечатан как d, если я использую юникод '\u03B4'
Небольшая предыстория: символ дельта (δ) является допустимым символом количества СИ и поэтому всегда должен быть напечатан курсивом. См. Coplen, TB (2011). Руководящие принципы и рекомендуемые термины для выражения результатов измерения отношения стабильных изотопов и газового отношения. Rapid Communications in Mass Spectrometry, 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,: метрическая информация недоступна для этого семейства / устройства
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()
)
Создано 12.11.2019 пакетом REPEX (v0.3.0)