Как исправить текст используя функцию mtext в R - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь исправить текст на своем графике, используя mtext

Предполагая, что это мои данные:

df<-rnorm(100,12,2)

Используемые коды:

plot(df)
mtext(col="red",side=3,line=1,at=39, paste(round(12,4)))
mtext('text here=',col="dark green", side=3, line=1, at=10)

Когда я использую эти коды, я получаю разрыв между «text here =» и значением «12». Когда я исправлю это, и когда я расширю область графика в Rstudio, я получу пробел.

Я хочу, чтобы здесь был текст = 12, и когда я разверну сюжет, он не будет изменен. Было бы хорошо, если бы мы могли упростить коды.

Ответы [ 2 ]

2 голосов
/ 28 марта 2020

Вы можете использовать фантомное выражение с bquote для этого:

Редактировать: Чтобы настроить положение, используйте adj и padj.

df<-rnorm(100,12,2)
plot(df)
txt1 <- bquote(expression("text here = " * phantom(.(round(12,4)))))
txt2 <- bquote(expression(phantom("text here = ") * .(round(12,4))))
mtext(eval(txt1), col = "dark green", adj=0, padj=-1)
mtext(eval(txt2), col = "red", adj=0, padj=-1)

Создано в 2020-03-28 пакетом Представления (v0.3.0)

0 голосов
/ 28 марта 2020

Мой ответ будет выглядеть как хак, потому что это хак:

plot(df)
mtext(col=c("red","blue"), side=3, line=1, at=10,
      c('text here = ', paste0(c(rep(" ", 23), 12), collapse = "")))

Вам нужно будет найти, сколько пробелов вы должны использовать (здесь 23), прежде чем число, которое вы хотите отобразить ( 12). Изменение размера графика не изменило относительные позиции между текстом и числом.

Конечно, это будет трудно адаптировать, если текст меняется от графика к графику.

Я надеюсь, что кто-то еще придет с лучшим ответом. Отличный ответ @ user12728748!

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