R core: легенда отображает горизонтальные прямоугольники / надписи только на больших размерах устройства, но усекает на меньших размерах устройства - PullRequest
0 голосов
/ 15 марта 2019

Я использую R core для построения сетки гистограмм.Я использую legend(), чтобы нарисовать смежную по горизонтали последовательность из четырех заполненных прямоугольников со связанными метками (нарисованными справа от указанных прямоугольников).Когда новое устройство / окно создается впервые, legend () отображает два самых внутренних элемента (то есть 2 заполненных прямоугольника и соответствующие метки) легенды, в то время как левый и правый элементы усекаются из представления устройства.

Если я увеличу размер устройства / окна, чтобы заполнить экран моего ноутбука, а затем перезапущу логику рендеринга / построения графика из R, легенда будет отображена правильно - она ​​состоит из четырех столбцов и каждого элемента (т.е. заполненапрямоугольник с меткой) распределяется на равную полосу пространства устройства вдоль горизонтального направления графика.

Почему размеры устройства должны иметь значение, если legend() содержит все элементы на устройстве / окне?Есть ли способ исправить это?

Вот точный вызов, который я делаю:

legend("bottom", legendLabels, fill=c(colors), xpd=NA, horiz=TRUE, bty="n", cex=1.0, inset=c(0, -0.5), xjust=0)

Я установил xpd=NA, потому что мы отрисовываем легенду на внешних полях 1017 * вида устройства.

1 Ответ

0 голосов
/ 26 марта 2019

Есть несколько настроек в горизонтальном направлении, которые можно сделать при вызове legend. Для сжатия или расширения выделенной ширины для каждой метки в легенде я нашел параметр text.width наиболее эффективным. Опять же, есть и другие горизонтальные корректировки, которые вы можете сделать, но для меня наиболее заметное влияние на общую ширину легенды составило text.width:

legend(x='bottom', inset=c(0, -yInset), legend=abbrevLabels, fill=c(colors), xpd=NA, horiz=TRUE, bty="n", cex=1.0, adj=0.035, text.width=rep(meanLabelLen/7.5, length(legendLabels)))

См. статью по теме о вертикальных корректировках.

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