Подтвердить что ты не робот

Выражение и новая строка в метках графика

Я хочу добавить некоторые индексы и надписи к моим меткам графа. Я попробовал expression, но он не работает с новыми строками (\n). Я пытаюсь исправить это с помощью paste, но это не сработает. Ниже приведены некоторые из моих попыток:

par(mfcol=c(1,3))
plot(1,1,main=expression("first line \n second line x"^2))
plot(1,1,main=expression(paste("first line \n second line", "x"^2)))
plot(1,1,main=paste("first line \n second line", expression("x"^2)))

Он производит:

enter image description here

В первых двух картинах вторая строка не очень хорошо центрирована, а в третьем - верхний индекс. Как получить как центрированную линию, так и индексы/верхние индексы?

4b9b3361

Ответ 1

Вы можете ввести разрыв строки внутри выражения:

bquote(atop("first line",
            "second line" ~ x ^ 2))

(Im использует bquote вместо expression здесь - оба работают в этом случае.)

Выполните demo(plotmath) для получения дополнительной информации и посмотрите документацию для atop.

boxplot, по-видимому, имеет некоторые проблемы с интерпретацией выражений в названии. Простое исправление заключается в том, чтобы нанести заголовок отдельно:

boxplot(data, main = '')
title(bquote(atop("first line", "second line" ~ x ^ 2)))

Ответ 2

Быстрое решение - добавить некоторые пробелы перед словом "первым".

Так как plotmath не поддерживает новые строки, вы можете использовать mtext для создания строк один за другим следующим образом:

plot(1,1)
exp <- 2
Lines <- list(bquote("first line"),bquote("second line x"^2))
mtext(do.call(expression, Lines),side=3,line=1:0)

enter image description here