Было бы полезно ознакомиться с работой сетки, в частности посмотреть на ?grid.text
. Система сетки сохраняет свой объект сюжета в «grobs» (графические объекты). Я с удивлением обнаружил, что «оправдание» относится к тому, что я ожидал (и оно относится к осевой линии, а не к краям ячейки). Если вы запустите этот код в "g"
-объекте со страницы, которую вы указали, вы можете ожидать, что текст будет перемещаться вправо, в то время как он фактически перемещается влево.
g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)] <-
lapply(g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)],
function(x) modifyList(x, list(just="right")))
grid.draw(g)
Чтобы изменить шрифт, который Вы должны были бы установить Г.П. узла «х» аргумент быть список с различной структурой (иной, чем просто пустой список). См `gpar» для аргументов он принимает:
str(g$grobs[[6]])
List of 11
$ label : chr "5.1"
$ x :Class 'unit' atomic [1:1] 0.5
.. ..- attr(*, "unit")= chr "npc"
.. ..- attr(*, "valid.unit")= int 0
$ y :Class 'unit' atomic [1:1] 0.5
.. ..- attr(*, "unit")= chr "npc"
.. ..- attr(*, "valid.unit")= int 0
$ just : chr "centre"
$ hjust : chr "left"
$ vjust : NULL
$ rot : num 0
$ check.overlap: logi FALSE
$ name : chr "GRID.text.1032"
$ gp : list()
..- attr(*, "class")= chr "gpar"
$ vp : NULL
g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)] <-
lapply(g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)],
function(x) modifyList(x, list(gp=list(cex=0.8))))
grid.newpage()
grid.draw(g)
Или использовать FONTSIZE аргумент:
g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)] <-
lapply(g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)],
function(x) modifyList(x, list(gp=list(fontsize=14, cex=1))))
grid.newpage()
grid.draw(g)
Чтобы изменить обоснование для gtable объекта можно „настроить“ на $x
элемент в Grob :
g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)] <-
lapply(g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)],
function(z) modifyList(z, list(x=unit(0.1,"npc"), just="left")))
g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)] <-
lapply(g$grobs[c(6:8, 10:12, 14:16, 18:20, 22:24)],
function(x) modifyList(x, list(gp=list(fontsize=16, cex=1))))
grid.draw(g)
Он отлично работает. Большое спасибо за тщательный ответ. –