Писать X (то есть средние) в легенде и как предотвратить разрыв строки?
Добрый день!
Я не настолько знаком с R, поэтому я был бы рад получить небольшую помощь.
Предположим, что у меня есть следующий минимальный пример:
test <- c(10,20,40,80,80)
avg <- mean(test)
avg <- format(avg,digits=2)
plot(test, xlab="x", ylab="y", pch = 4)
legend("topleft", legend= c("Average: ", avg))
Я хотел бы написать x вместо "среднего" - интересно, возможно ли это событие, поскольку это не обычный символ-просто комбинация двух (буква плюс надпись).
Еще одна вещь, от которой я хотел бы избавиться, - это разрыв строки после слова "среднее" (см. стрелку на рисунке ниже):
1 ответ:
Здесь есть два вопроса. Во-первых, это обрабатывается с помощью
Во-вторых, вам нужно выражение, в котором?plotmath
в R. оператор, который вы ищете, являетсяbar()
. Это Не функция, а разметка, которуюplotmath
понимает.avg
преобразуется в его значение. Вам нужно выражение, потому что это то, с чем работаетplotmath
. Существует несколько решений этой проблемы, но ниже я используюbquote()
. Вы предоставляете ему выражение и все, что завернуто в.( )
будет преобразовано его значение путем оценки вещи внутри.( )
.Вот ваш код и соответствующим образом измененный вызов
legend()
:Обратите внимание, что это вставит именно то, что есть вtest <- c(10,20,40,80,80) avg <- mean(test) avg <- format(avg,digits=2) plot(test, xlab="x", ylab="y", pch = 4) legend("topleft", legend = bquote(bar(x)*":" ~ .(avg)))
avg
. Возможно, вам придется сделатьavg <- round(avg)
Или какое-то другое исправление форматирования, чтобы получить что-то приятное и презентабельное.