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

如何在highcharter饼图中指定label与value列?原函数已弃用

解决Highcharter饼图指定自定义列作为Label和Value的问题

我明白你遇到的困扰——hc_add_series_labels_values()确实已经被弃用,默认的hc_add_series()自动选列的逻辑也容易让人摸不着头脑。其实你只需要用hcaes()函数来明确映射数据列到饼图对应的属性即可,具体实现如下:

核心思路

Highcharts的饼图中,每个扇形的**标签(label)**对应数据里的name字段,**数值(value)**对应y字段。通过hcaes()可以把你自定义的name2和high列分别映射到这两个属性上,精准控制展示内容。

修改后的完整代码

library(dplyr)
library(highcharter)
n <- 5
set.seed(123)
colors <- c("#d35400", "#2980b9", "#2ecc71", "#f1c40f", "#2c3e50", "#7f8c8d")
colors2 <- c("#000004", "#3B0F70", "#8C2981", "#DE4968", "#FE9F6D", "#FCFDBF")
df <- data.frame(x = seq_len(n) - 1) %>% 
  mutate(
    y = 10 + x + 10 * sin(x),
    y = round(y, 1),
    z = (x*y) - median(x*y),
    e = 10 * abs(rnorm(length(x))) + 2,
    e = round(e, 1),
    low = y - e,
    high = y + e,
    value = y,
    name = sample(fruit[str_length(fruit) <= 5], size = n),
    color = rep(colors, length.out = n),
    segmentColor = rep(colors2, length.out = n)
  )
df$name2 <- c("mos", "ok", "kk", "jji", "hufg")

# 关键修改:用hcaes指定自定义列
highchart() %>% 
  hc_chart(type = "pie") %>% 
  hc_add_series(
    data = df,
    hcaes(name = name2, y = high), # 指定name2为标签、high为数值
    name = "Fruit Consumption", 
    showInLegend = FALSE
  )

代码说明

  • hcaes(name = name2, y = high):这行是核心配置,它告诉highcharter要使用df中的name2列作为每个饼块的显示标签,high列作为对应的数值来源。
  • 其余参数保持你原有的设置即可,运行后生成的饼图就会完全按照你想要的列来展示数据了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:43:38