62
задан 31 December 2012 в 20:40

3 ответа

РЕДАКТИРОВАНИЕ: добавленный новый пример для ggplot2 в конце

См. ? plotmath для различных математических операций в R

необходимо смочь использовать выражение без вставки. При использовании tilda (~) символ в функции выражения, это предположит, что между символами существует пространство, или Вы могли использовать * символ, и это не будет помещать пространство между аргументами

Иногда, необходимо будет изменить поля в, Вы помещаете верхние индексы на ось y.

par(mar=c(5, 4.3, 4, 2) + 0.1)
plot(1:10, xlab = expression(xLab ~ x^2 ~ m^-2),
     ylab = expression(yLab ~ y^2 ~ m^-2),
     main="Plot 1")

enter image description here

plot(1:10, xlab = expression(xLab * x^2 * m^-2),
     ylab = expression(yLab * y^2 * m^-2),
     main="Plot 2")

enter image description here

plot(1:10, xlab = expression(xLab ~ x^2 * m^-2),
     ylab = expression(yLab ~ y^2 * m^-2),
     main="Plot 3")

enter image description here

, Надо надеяться, Вы видите различия между графиками 1, 2 и 3 с различным использованием ~ и * символы. Дополнительное примечание, можно использовать другие символы, такие как графическое изображение символа градуса для температур для или mu, phi. Если Вы хотите добавить, что нижний индекс использует квадратные скобки.

plot(1:10, xlab = expression('Your x label' ~ mu[3] * phi),
     ylab = expression("Temperature (" * degree * C *")"))

enter image description here

Вот ggplot пример с помощью выражения с примером ерунды

require(ggplot2)

Или если Вам установили pacman библиотеку, можно использовать p_load, чтобы автоматически загрузить и загрузить и присоединить дополнительные пакеты

# require(pacman)
# p_load(ggplot2)

data = data.frame(x = 1:10, y = 1:10)

ggplot(data, aes(x,y)) + geom_point() + 
  xlab(expression(bar(yourUnits) ~ g ~ m^-2 ~ OR ~ integral(f(x)*dx, a,b))) + 
  ylab(expression("Biomass (g per" ~ m^3 *")")) + theme_bw()

enter image description here

22
ответ дан 31 October 2019 в 13:53

Если x^2 и y^2 были выражениями, уже данными в переменной, в квадрате, это решает проблему:

labNames <- c('xLab','yLab')
squared <- c(expression('x'^2), expression('y'^2))

xlab <- eval(bquote(expression(.(labNames[1]) ~ .(squared[1][[1]]))))
ylab <- eval(bquote(expression(.(labNames[2]) ~ .(squared[2][[1]]))))

plot(c(1:10), xlab = xlab, ylab = ylab)

отметьте [[1]] позади в квадрате [1]. Это дает Вам контент "выражения (...)" между скобками без любых символов ESC.

3
ответ дан 31 October 2019 в 13:53

Очень хорошим примером с помощью вставки и замены для набора и символов (mathplot) и переменных в http://vis.supstat.com/2013/04/mathematical-annotation-in-r/

Вот является ggplot адаптация

library(ggplot2)
x_mean <- 1.5
x_sd <- 1.2
N <- 500

n <- ggplot(data.frame(x <- rnorm(N, x_mean, x_sd)),aes(x=x)) +
    geom_bar() + stat_bin() +
    labs(title=substitute(paste(
             "Histogram of random data with ",
             mu,"=",m,", ",
             sigma^2,"=",s2,", ",
             "draws = ", numdraws,", ",
             bar(x),"=",xbar,", ",
             s^2,"=",sde),
             list(m=x_mean,xbar=mean(x),s2=x_sd^2,sde=var(x),numdraws=N)))

print(n)
7
ответ дан 31 October 2019 в 13:53

Другие вопросы по тегам:

Похожие вопросы: