如何使用 patchwork 与 ggplot 组合时自动缩放表格

问题描述 投票:0回答:1

我正在使用拼凑来组装绘图和表格。问题是我的桌子有很多列,所以有些列消失了。我希望桌子能够缩放,以便整个桌子变得更小以适应空间。这是一个简化的示例:

library(ggplot2)
library(patchwork)
library(ggpmisc)

# Make a wide dataframe for demo purposes
my_data <- mtcars
names(my_data) <- paste0(names(my_data), "_two")
my_data <- cbind(mtcars, my_data)

# 1. Create a scatter plot
my_plot <- ggplot(my_data, aes(mpg, disp)) + 
  geom_point() + 
  labs(title = "A Scatter Plot of mtcars")

# 2. Create a table plot
table_data <- head(my_data)
my_table_plot <- ggplot() +
  theme_void() +
  annotate(geom = "table", x = 1, y = 1, label = list(table_data))

# 3. Combine plots with patchwork and adjust aspect ratio
my_assembled <- my_plot / my_table_plot + 
  plot_layout(heights = c(3, 1))

# Show the assembled plot
print(my_assembled)

如上所述,我知道我可以使用

plot_layout(heights = c(3, 1))
更改纵横比。但是,这只会更改表的可用空间。它实际上并没有使表格或其文本变小。任何帮助都会很棒!

r ggplot2 datatable patchwork
1个回答
0
投票

一种方法可能是使用

flextable:gen_grob
将可伸缩对象转换为拼凑可以使用的对象,并自动调整大小以适应:

library(flextable)
my_plot + gen_grob(flextable(table_data)) +
  plot_layout(heights = c(3, 1))

© www.soinside.com 2019 - 2024. All rights reserved.