Используется обычный текст в сочетании с обычным текстом в сюжете - PullRequest
2 голосов
/ 28 сентября 2011

ОБНОВЛЕНИЕ: Я сам нашел решение, см. Ниже.

В R я хочу добавить метку к графику, содержащую как индекс, так и обычный текст. Чтобы быть более точным, я хотел бы использовать mtext () (или любой другой метод, который делает трюк), чтобы добавить текст ниже графика. Текст должен выглядеть так:

The label
Это легко сделать в латексе с $B\pm t_{a/2}SE(B)$

В R я дошел до mtext(expression(B%+-%t[a/2])), который печатает

r so far

Но сложность заключается в том, чтобы получить часть SE (B) после нее, поскольку выражение рассматривает SE (B) как функцию. Я пробовал несколько комбинаций с пастой, но безрезультатно. Я уверен, что для этого должно быть простое решение, но я не смог найти его после долгого поиска.


UPDATE:

Ух ты, сам нашел решение. Как я уже сказал, я пробовал сочетания выражения и пасты и был уверен, что пробовал это раньше, но, видимо, я этого не делал. Решение таково:

mtext(expression(paste(B%+-%t[a/2],"SE(B)")))

1 Ответ

7 голосов
/ 29 сентября 2011

Я вижу, что вы решили это, но ваше окончательное решение намного удобнее и лаконичнее, если отказаться от использования paste() и использовать оператор ~ для добавления пробелов:

expression(B %+-% t[a/2] ~ SE(B))

например:.

plot(1:10, xlab = expression(B %+-% t[a/2] ~ SE(B)))

, что дает

enter image description here

Вы можете добавить дополнительный интервал, используя, например, несколько ~: ~~~. Если вы просто хотите сопоставить две части уравнения, используя оператор *, например:

plot(1:10, xlab = expression(B %+-% t[a/2] * SE(B)))

, что дает:

enter image description here

Из вашего Q не сразу понятно, какой из них предпочтительнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...