如何在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
解决方案
你可以通过以下两步实现:
- 手动计算y轴数据的平均值
- 在
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
相关产品推荐
相关产品推荐

