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

echarts4r链式调用e_text_g()实现图表左右文本放置失败求助

解决echarts4r链式调用e_text_g()添加多文本失效的问题

问题原因

e_text_g()函数每次调用会覆盖之前的graphic配置,而非追加新的文本元素,因此链式调用两次只会保留最后一次的设置。

替代方案1:使用e_graphic()一次性添加多文本

通过e_graphic()传入包含多个文本配置的列表,可同时添加左右两侧文本,且能精准控制位置:

library(echarts4r)

set.seed(123) # 固定随机数保证结果可复现
df <- data.frame(
  x = seq(10),
  y = rnorm(10, 10, 3)
)

df |>
  e_charts(x) |>
  e_scatter(y) |>
  e_graphic(
    list(
      # 左侧文本配置
      list(
        type = "text",
        style = list(text = "left", fontSize = 30, fill = "red"),
        left = "10%",
        top = "7%"
      ),
      # 右侧文本配置
      list(
        type = "text",
        style = list(text = "right", fontSize = 30, fill = "red"),
        right = "10%",
        top = "7%"
      )
    )
  )

替代方案2:手动追加graphic元素(兼容e_text_g逻辑)

若坚持使用e_text_g(),可手动修改echarts对象的配置,将新文本元素追加到已有配置中:

df |>
  e_charts(x) |>
  e_scatter(y) |>
  e_text_g(
    style = list(text = "right", fontSize = 30, fill = "red"),
    right = "10%",
    top = "7%"
  ) |>
  {
    function(chart) {
      # 把左侧文本配置追加到graphic列表
      chart$x$opts$graphic <- c(
        chart$x$opts$graphic,
        list(
          list(
            type = "text",
            style = list(text = "left", fontSize = 30, fill = "red"),
            left = "10%",
            top = "7%"
          )
        )
      )
      chart
    }
  }()

说明

  • 两种方案都能通过left/right/top的百分比或像素值精准控制文本与边框的距离,保证效果可复现。
  • 优先推荐e_graphic()方案,代码更简洁且符合echarts4r的设计逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:50:36