Легенда в R: убрать левый пробел и перейти к строке - PullRequest
0 голосов
/ 25 сентября 2018

Чтобы объяснить мои графики, я использую функцию legend () в R. Проблема в том, что мои объяснения длинные и поэтому занимают более одной строки.Как автоматически перейти к следующей строке в конце строки?Как убрать левое пространство между левой границей и началом текста?Вот мой сценарий:

m <- matrix(c(1,2,3,3),nrow = 2,ncol = 2,byrow = TRUE) layout(mat = 
m,heights = c(0.5,0.5),widths=c(0.5,0.5))
par(mai=c(0.2,0.8,0.5,0.4)) plot(1:10,1:10)
par(mai=c(0.2,0.8,0.5,0.4)) plot(1:10,1:10)
par(mai=c(0,0,0,0)) plot.new()
legend(x="left","legend legend legend legend legend legend legend legend legendlegend legend legend legend legend legend legend legend legend legend legend legend legendlegend legend legend legend",cex=2)

Вот сюжет:

enter image description here

1 Ответ

0 голосов
/ 25 сентября 2018

В R с "\n" вы переходите к следующей строке, вы можете разделить свой длинный текст с помощью функции strwrap и использовать paste, как в https://stackoverflow.com/a/7367534/10263697. С legend(..., x.intersp = 0) вы удаляете левый пробел влегенда.

m <- matrix(c(1,2,3,3),nrow = 2,ncol = 2,byrow = TRUE) 
layout(mat = 
           m,heights = c(0.5,0.5),widths=c(0.5,0.5))
par(mai=c(0.2,0.8,0.5,0.4)) 
plot(1:10,1:10)
par(mai=c(0.2,0.8,0.5,0.4)) 
plot(1:10,1:10)
par(mai=c(0,0,0,0)) 
plot.new()
legend(x="left",paste(strwrap("legend legend legend legend legend legend legend legend legendlegend legend legend legend legend legend legend legend legend legend legend legend legendlegend legend legend legend", width = 0.3 * getOption("width")), sep = "\n")
,cex=2, x.intersp = 1)
...