Латекс и переменные в метке сюжета в R? - PullRequest
9 голосов
/ 28 июля 2011

Как использовать переменные в латексных выражениях в R?

Например:

plot(X, Y, main=expression(R^2))

Поставит R с хорошей надписью 2 в качестве основного заголовка.

Но, скажем, я хочу, чтобы он сказал 'R ^ 2: 0.5', с 0.5, полученным из переменной R. Как мне это сделать?

Ответы [ 4 ]

13 голосов
/ 28 июля 2011

Взлом Оуэна довольно крутой, но не совсем обычный способ сделать это.Если вы используете bquote, это на самом деле довольно просто.bquote будет делать то же самое, что и quote, за исключением того, что все значения между .() будут оцениваться в указанной среде (или глобальной, если ничего не указано).

Тривиальный пример:

X <- 1:10
Y <- 1:10
a <- 0.8
plot(X,Y,main=bquote(R^2 : .(a)))

Дает:

enter image description here

См. Также ?bquote и ?plotmath для получения дополнительных примеров и возможностей

3 голосов
/ 28 июля 2011

tikz и psfrag позволяют вам использовать фактический код и вывод LaTeX вместо плоттеров, что приводит к лучшей типографской согласованности.

См. Этот вопрос для деталей. Получение LaTeX на графиках R

3 голосов
/ 28 июля 2011

Ну, это работает ...

call(':', quote(R^2), a)

хотя мне это кажется немного хакерским, так как он использует оператор R's: тогда как вы просто хотите вставить текст в конец. Может быть, есть лучший способ?

2 голосов
/ 28 июля 2011

Еще одна вариация на тему @Joris - substitute().Вы даете substitute() выражение и среду или список, в котором нужно оценить выражение.Передача списка, как правило, проще всего, особенно для заданий, подобных изложенному здесь.

plot(X,Y, main = substitute(R^2 : a, list(a = a)))

Мы можем понять, почему это работает, взглянув исключительно на вызов substitute():

> substitute(R^2 : a, list(a = a))
R^2:0.8

a в выражении заменяется значением a в списке.

...