使用 ggplot 和 gridExtra 组合表格和绘图

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

尝试找到一种更优雅的解决方案,使用 dplyr、ggplot 和 gridExtra 包将绘图与表格结合起来。此外,需要帮助控制表格中显示的数字。

我想执行以下操作而不将我的表带到 data.frame:

library("tidyverse")
library("gridExtra")

# data
ddd<-bind_cols(runif(5,0,1),(runif(5,0,1))) |>
  set_names(c("yo","hi"))

# format digits and get as Grob  NEED HELP WITH THIS STEP!
t <- as.data.frame(ddd)
t <- format(t, digits=1)
t <- tableGrob(t)

# plot
p<- ggplot(data=ddd)+
  geom_point(mapping = aes(x=yo,y=hi))

# my go to gridExtra
lay<-rbind(c(1,2))

grid.arrange(p,t, layout_matrix=lay)
r ggplot2 dplyr tidyverse gridextra
1个回答
0
投票

ggpp 包提供了一个很好的解决方案,可以将表格添加到绘图中。

当添加为绘图图层时,tbl_df 中的

x
y
控制表格
tb
的位置。

library(tidyverse)
library(ggpp)

set.seed(1)
ddd <- tibble(yo = runif(5, 0, 1), hi = (runif(5, 0, 1)))

ddd2 <- ddd |> mutate(across(everything(), \(x) round(x, 1)))

tbl_df <- tibble(x = 0.25, y = 0.95, tb = list(ddd2))

ggplot(data = ddd) +
  geom_point(mapping = aes(x = yo, y = hi)) +
  geom_table(aes(x = x, y = y, label = tb), data = tbl_df)

创建于 2024-04-05,使用 reprex v2.1.0

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