You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用gt表格按行绘制直方图的报错问题咨询

解决方案

错误原因

  • text_transform()的fn参数作用域内无法直接通过.$plots提取原数据框的绘图列
  • 未设置ggplot_image()的输出尺寸,也缺少ggplot2依赖包加载
  • 额外创建空列再填充的逻辑冗余,可直接在绘图列原位渲染图片

可运行完整代码

# 加载全部依赖
library(dplyr)
library(tidyr)
library(purrr)
library(gt)
library(ggplot2)

# 构造带绘图对象的汇总表
my_tibble <- iris %>%
  pivot_longer(-Species, 
               names_to = "Vars", 
               values_to = "Values") %>%
  group_by(Vars) %>%
  summarise(
    obs = n(),
    mean = round(mean(Values), 2),
    median = round(median(Values), 2), 
    plots = list(
      ggplot(cur_data(), aes(Values)) + 
        geom_histogram(bins = 8, fill = "#2c3e50", color = "white") +
        theme_void() # 移除多余坐标轴元素,适配表格展示
    )
  )

# 生成带直方图的gt表格
my_tibble %>%
  gt() %>%
  text_transform(
    locations = cells_body(columns = plots),
    fn = function(x) {
      map(my_tibble$plots, ~ ggplot_image(.x, height = px(30), width = px(120)))
    }
  ) %>%
  # 自定义列名
  cols_label(
    Vars = "变量",
    obs = "观测数",
    mean = "均值",
    median = "中位数",
    plots = "分布直方图"
  )

补充说明

如果运行报错,先升级gt到最新正式版:

install.packages("gt")

如果需要调整直方图的样式、柱子数量、颜色等,直接修改summarise中ggplot部分的代码即可。

内容的提问来源于stack exchange,提问作者Alexis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 21:57:05