tableGrob: изменение размера таблицы (изменение размера шрифта), нарисованной поверх ggplot, с использованием annotation_custom - PullRequest
1 голос
/ 05 марта 2020

У меня есть некоторые проблемы с изменением размера текста в таблице, нарисованной на графике с использованием tableGrob () и annotation_custom (). По сути, я хочу, чтобы размер шрифта в таблице был меньше, чтобы общая таблица была меньше. Я проверил документацию tableGrob () и следовал ей в меру своих возможностей, но, должно быть, я что-то не так делаю, потому что это выдает ошибку.

Вот воспроизводимый пример:

library(ggplot2)
library(grid)
library(gridExtra)

df <- data.frame(x=seq(1,10),y=seq(11,20))
table <- data.frame(x=seq(1,3),y=seq(4,6))

ggplot(df,aes(x=x,y=y)) + geom_point() +
 annotation_custom(tableGrob(table,rows=NULL),xmin=0,xmax=3,ymin=15,ymax=20) # plot drawn successfully without text resizing

ggplot(df,aes(x=x,y=y)) + geom_point() + 
  annotation_custom(tableGrob(table,rows=NULL,gpar.coretext = gpar(col = "black", cex = 0.8)),xmin=0,xmax=3,ymin=15,ymax=20)
 # error when attempting to resize text following tableGrob documentation

Это ошибка, которую я получаю, когда запускаю вторую команду ggplot ():

Error in gtable_table(d, name = "core", fg_fun = theme$core$fg_fun, bg_fun = theme$core$bg_fun,  : 
  unused argument (gpar.coretext = list(col = "black", cex = 0.8))

Любая помощь очень ценится!

1 Ответ

1 голос
/ 06 марта 2020

Если вы просто хотите, чтобы все текст был меньше в вашей таблице, используйте base_size в ttheme_default:

library(ggplot2)
library(grid)
library(gridExtra)

df <- data.frame(x=seq(1,10),y=seq(11,20))
table <- data.frame(x=seq(1,3),y=seq(4,6))

ggplot(df,aes(x=x,y=y)) + 
  geom_point() + 
  annotation_custom(tableGrob(table,rows=NULL, theme = ttheme_default(base_size = 8)),
                    xmin=0,xmax=3,ymin=15,ymax=20)

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

...