как объединить график и таблицу с помощью grid.arrange

#r

#r

Вопрос:

У меня есть график и таблица, и я хотел бы объединить их в график. как мне это сделать.

Вот мои коды:

 df<-structure(list(AEDECOD = c("Hypoxia", "Malignant pleural effusion", 
"Decubitus ulcer", "Nausea"), ADY = c(13, 13, 13, 14)), row.names = c(NA, 
-4L), class = "data.frame")

tbl <-structure(list(`Analysis Relative Day` = 13, `AE Type` = "SER", 
    `Adverse Event` = "Hypoxia/Malignant pleural effusion"), row.names = c(NA, 
-1L), class = c("tbl_df", "tbl", "data.frame"))

p1<- ggplot(data =df, aes(x = ADY, y = AEDECOD))  geom_point()
p2 <-grid.arrange(p1, tbl,
nrow = 2,as.table = TRUE)

print(p2)
 

Я получил коды ошибок:

 Error: Input must be a vector, not a <viewport> object.
 

Если вы знаете какой-либо другой способ сделать то же самое, я бы тоже хотел этому научиться.

Ответ №1:

Мы можем использовать ggarrange после преобразования tibble в ggtexttable

 library(ggpubr)
ggarrange(p1, ggtexttable(tbl), nrow = 2)
 

Или с помощью кода OP

 library(gridExtra)
grid.arrange(p1, ggtexttable(tbl),
      nrow = 2,as.table = TRUE)
 

-вывод

введите описание изображения здесь

Комментарии:

1. Что, если я хочу добавить сноску Just testing к графику, как я должен ее добавить? Я хотел бы иметь сноску под таблицей, а не прямо под графиком.

2. @Stataq вы можете преобразовать в gt с помощью tab_footnote

3. Спасибо. Но примечание к сноске на самом деле не является сноской для таблицы. больше похоже на сноску для P2. А также как выровнять таблицу по левому краю?

4. @Stataq Не могли бы вы опубликовать новый вопрос. Спасибо

5. @Stataq когда вы говорите, что это не сноска, что вы имеете в виду? Я думал о чем-то вроде p2 <- tbl %>% gt() %>% tab_footnote('Just texting', locations = cells_column_labels(columns = "Adverse Event"))