尝试找到一种更优雅的解决方案,使用 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)
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