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

R语言plotly柱状图叠加水平平均线仅显示折线问题求助

问题原因
  • 初始化plot_ly对象时未明确指定type = 'bar',导致新增trace时绘图类型推断逻辑混乱,原有柱状图配置被覆盖
  • add_trace()函数第一个参数前存在多余的空逗号,引发参数解析异常
  • 未设置inherit = FALSE,新增trace会继承原有图层的color分组属性,导致平均线被错误拆分,同时干扰原有图层渲染
修正后可运行代码
library(plotly)
# 生成分组柱状图部分
vect_x = c("A", "AA", "AAA", "A", "AA", "AAA")
vect_y <- c(137.2, 306.2, 76.2, 73.2, 220.9, 99.3)
vect_group <- c("US","US","US","Europe","Europe","Europe")
# 明确指定type为bar,避免类型推断异常
fig <- plot_ly(x = ~vect_x, y = ~vect_y, color = ~vect_group, type = 'bar')

# 添加平均值水平线部分
avg_value <- mean(vect_y, na.rm = TRUE)
fig <- fig %>% add_lines(
  x = unique(vect_x),
  y = rep(avg_value, length(unique(vect_x))),
  line = list(color = 'black'),
  name = '总体平均值',
  # 不继承原有图层的分组属性,避免平均线被拆分
  inherit = FALSE
)

# 渲染图表
fig

如果想要保留你原来的scatter类型写法,只需修正多余逗号、添加inherit = FALSE、明确初始柱状图类型即可:

avg_value <- mean(vect_y, na.rm = T)
fig %>% add_trace(
  x = ~vect_x,
  y = ~rep(avg_value, length(vect_y)),
  type='scatter',
  mode='lines+markers',
  line = list(color = 'black'),
  inherit = FALSE
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:27:04