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

如何在Highcharts饼图/环形图中实现内圈高亮渐变效果?

解决Highcharts环形图内圈高亮问题

要实现环形图(Donut)的内圈高亮(对应数据点颜色的浅色调),你不需要用线性渐变,应该改用径向渐变(radial gradient),核心是修改数据点的color属性(或全局plotOptions.pie.color)来定义径向渐变规则。

具体实现步骤:

  • 给每个数据点的color配置径向渐变:
    径向渐变的中心设为[0.5, 0.5](环形中心),起始颜色(内圈)为对应数据色的浅色调,结束颜色(外圈)为数据点的正常颜色,半径设置为匹配环形内圈大小的数值(比如0.8,对应环形innerSize的比例)。
  • 示例代码片段:
Highcharts.chart('container', {
  chart: {
    type: 'pie'
  },
  plotOptions: {
    pie: {
      innerSize: '60%', // 环形内圈大小
      dataLabels: {
        enabled: false
      }
    }
  },
  series: [{
    name: 'Brands',
    data: [
      {
        name: 'Chrome',
        y: 61.41,
        color: {
          radialGradient: { cx: 0.5, cy: 0.5, r: 0.8 },
          stops: [
            [0, Highcharts.color('#4ed1f7').lighten(0.3).get()], // 内圈浅色调
            [1, '#4ed1f7'] // 外圈正常颜色
          ]
        }
      },
      {
        name: 'Internet Explorer',
        y: 11.84,
        color: {
          radialGradient: { cx: 0.5, cy: 0.5, r: 0.8 },
          stops: [
            [0, Highcharts.color('#f7b74e').lighten(0.3).get()],
            [1, '#f7b74e']
          ]
        }
      }
    ]
  }]
});

关键说明:

  • 用Highcharts.color().lighten(0.3).get()可以快速生成对应颜色的浅色调,避免手动调色。
  • 径向渐变的r值(半径)需要和innerSize配合调整,确保内圈高亮的范围刚好匹配环形的内圈区域。
  • 如果要全局统一配置,可把渐变规则写在plotOptions.pie.color里,再通过point.color覆盖单个数据点的颜色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:05:17