Поворот текста на внешнем поле области устройства - PullRequest
0 голосов
/ 26 июня 2018

Я хотел бы добавить текст к правому внешнему краю нескольких графиков, который параллелен оси, но ориентирован к центру графика (ориентация слов «красный» и «синий» на графике ниже:

par(mfcol=2:1)

curve(sin,-2*pi,2*pi,col=2)
limits <- par("usr")
text(limits[2]+.25, mean(limits[3:4]),
     "red", srt=270, xpd=T)
curve(sin,-2*pi,2*pi,col=4)
text(limits[2]+.25, mean(limits[3:4]),
     "blue", srt=270, xpd=T)
mtext("Color of line",side=4,outer=T)

toy example

Если бы функция mtext использовала параметр srt вместо las (что, по-видимому, имело место для S plus), это было бы тривиально, и вышеуказанный обходной путь с использованием usr не потребовался бы. Но я хотел бы иметь возможность ориентировать текст на внешнем поле («Цвет линии» выше) таким же образом, что я, кажется, не могу сделать даже вручную с текстом (использование xpd=T все еще ограничивает текст до самая последняя область рисунка, а не область устройства).

Есть ли способ сделать это, который не требует использования layout, как в ответе @mrflick здесь ? Кажется, это должно быть тривиально, но я не понимаю, как это можно сделать.

1 Ответ

0 голосов
/ 26 июня 2018

Чтобы найти координаты y центра устройства, вы можете использовать grconvertY для преобразования из "нормализованных координат устройства" ("ndc"; в диапазоне от 0 до 1) в пользовательские координаты.

Здесь значение x просто настраивается с соответствующим коэффициентом (например, limits[2] * 1.2).

windows()
par(mfrow = c(2, 1), oma = c(0, 0, 0, 2))

curve(sin, -2*pi, 2*pi, col = 2)
limits <- par("usr")
text(limits[2] + 0.25, mean(limits[3:4]),
     "red", srt = 270, xpd = TRUE)
curve(sin, -2*pi, 2*pi, col = 4)
text(limits[2] + 0.25, mean(limits[3:4]),
     "blue", srt = 270, xpd = TRUE)

text(x = limits[2] * 1.2, y = grconvertY(0.5, from = "ndc"),
     labels = "color of line", xpd = NA, srt = 270)

enter image description here


Пожалуйста, смотрите предыдущие редакции, если вы хотите вычислить y-позицию из пользовательских координат ("usr") и полей графика ("mai").

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