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

如何在R语言Highcharter面积图中添加数值平均线?

在Highcharter面积图中添加平均值参考线(Plotline)

问题描述

我找到过一些类似问题,但大多用JavaScript实现,不知道怎么用常规R代码适配。我只需要给Highcharter面积图加一条显示数值平均值的plotline,已经知道要自己计算平均值,但不知道怎么创建plotline。以下是可复现代码:

library(tidyverse)
library(highcharter) 
library(ggplot2)

data("diamonds", package = "ggplot2")

df <- diamonds %>%
  group_by(cut)%>%
  count()
head(df, 4)

# Create chart
hc <- df %>% 
  hchart(
    'area', hcaes(x = cut, y = n),
    color = "lightblue"
  ) %>%
hc_yAxis(title = list(text = "cut"))

# Display chart
hc

解决方案

你可以通过以下两步实现:

  1. 手动计算y轴数据的平均值
  2. 在hc_yAxis()中通过plotLines参数添加参考线

修改后的完整代码如下:

library(tidyverse)
library(highcharter) 
library(ggplot2)

data("diamonds", package = "ggplot2")

df <- diamonds %>%
  group_by(cut)%>%
  count()

# 计算y值的平均值
avg_n <- mean(df$n)

# 创建带平均值参考线的图表
hc <- df %>% 
  hchart(
    'area', hcaes(x = cut, y = n),
    color = "lightblue"
  ) %>%
  hc_yAxis(
    title = list(text = "数量"), # 修正原标题错误,对应y轴的计数n
    plotLines = list(
      list(
        value = avg_n,          # 参考线位置为平均值
        color = "darkred",      # 参考线颜色
        width = 2,              # 参考线宽度
        label = list(
          text = paste("平均值: ", round(avg_n, 2)), # 显示格式化后的平均值
          align = "right",      # 标签靠右对齐
          style = list(color = "darkred", fontWeight = "bold") # 标签样式
        )
      )
    )
  )

# 显示图表
hc

关键说明

  • plotLines接受列表格式参数,每个子列表对应一条参考线,这里仅需一条平均值线,嵌套一层列表即可。
  • 可通过调整color、width、label下的参数,自定义参考线的样式和标签显示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:01:15