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

如何用e_charts从DataFrame正确绘制多个并排仪表盘图?

用echarts4r实现一行三个仪表盘的正确方法

你的代码问题在于:e_gauge 默认只能处理单个数值与名称,直接传入整个向量会把所有数值叠加到同一个仪表盘上;同时 e_facet 仅适用于常规图表系列(如柱状图、折线图)的分面,无法对仪表盘组件生效。

以下是两种可行的实现方式:

方法1:使用 purrr 批量生成 + e_grid 布局

适合数据量较多的情况,通过循环批量生成每个仪表盘,再用网格布局排列:

library(echarts4r)
library(purrr)

df <- data.frame(group = c("A", "B", "C"), value = c(57, 23, 65))

# 定义生成单个仪表盘的函数
create_gauge <- function(title, value) {
  e_charts() |>
    e_gauge(value, title)
}

# 批量生成并组合成1行3列的布局
df |>
  pmap(list(title = group, value = value), create_gauge) |>
  e_grid(rows = 1, cols = 3)

方法2:手动逐个添加仪表盘 + e_grid 布局

适合数据量较少的场景,直接逐个定义仪表盘后用网格排列:

library(echarts4r)

df <- data.frame(group = c("A", "B", "C"), value = c(57, 23, 65))

e_charts() |>
  e_gauge(df$value[1], df$group[1]) |>
  e_gauge(df$value[2], df$group[2]) |>
  e_gauge(df$value[3], df$group[3]) |>
  e_grid(rows = 1, cols = 3)

核心逻辑是用 e_grid 替代 e_facet,e_grid 专门用于在同一画布上排列多个独立的图表组件,能精准控制行列布局。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:32:48