Highcharts极坐标图:多窗格段颜色

问题描述 投票:0回答:2

我正在尝试更改极坐标图的每个段的背景颜色。为背景设置单一颜色很容易,但是可以为每个极地饼设置不同的颜色吗?

下面的图表段有一个例子是8种不同的颜色:

http://www.highcharts.com/demo/polar

谢谢

javascript highcharts
2个回答
2
投票

据我所知,在API中没有简单的方法可以做到这一点。

我将提出一个解决方案,利用chart.renderer为极坐标图的每个切片绘制一种颜色:

var colors = [ "pink", "yellow", "blue", "red", "green", "cyan", "teal", "indigo" ];    
var parts = 8;

for(var i = 0; i < parts; i++) {
    chart.renderer.arc(chart.plotLeft + chart.yAxis[0].center[0], 
                       chart.plotTop + chart.yAxis[0].center[1], 
                       chart.yAxis[0].height, 
                       0, 
                       -Math.PI + (Math.PI/(parts/2) * i), 
                       -Math.PI + (Math.PI/(parts/2) * (i+1))).attr({
        fill: colors[i % colors.length],
        'stroke-width': 1,
        'opacity': 1
    }).add();
}

点击this JSFiddle link观看现场演示。

它使用renderer.arcchart关于中心和轴高度的信息绘制每个切片。使用以弧度给出的起始和结束角度绘制弧。可以使用colors数组对各种切片进行着色,并且可以使用parts变量控制切片的数量。

如果有多个部分而不是颜色,它将从colors数组的开头开始,当颜色用尽时,使用colors[i % colors.length]


0
投票

您可以添加具有不同颜色点的假列系列,并将yAxis.maxPadding设置为0:

chart: {
polar: true,
events: {
  load: function() {
    var chart = this,
      max = chart.yAxis[0].max;
    chart.addSeries({
      type: 'column',
      data: [{
        y: max,
        color: 'rgba(255, 255, 0, 0.2)'
      }, {
        y: max,
        color: 'rgba(255, 0, 255, 0.2)'
      }, {
        y: max,
        color: 'rgba(0, 255, 255, 0.2)'
      }, {
        y: max,
        color: 'rgba(255, 0, 0, 0.2)'
      }, {
        y: max,
        color: 'rgba(0, 255, 0, 0.2)'
      }, {
        y: max,
        color: 'rgba(0, 0, 255, 0.2)'
      }, {
        y: max,
        color: 'rgba(130, 70, 150, 0.2)'
      }, {
        y: max,
        color: 'rgba(0, 0, 0, 0.2)'
      }],
      pointPadding: 0,
      groupPadding: 0,
      zIndex: 0,
      showInLegend: false,
      enableMouseTracking: false,
      animation: false
    })
  }
}
},

yAxis: {
  maxPadding: 0
},

的jsfiddle:https://jsfiddle.net/BlackLabel/tsj9pomq

API参考:https://api.highcharts.com/highcharts/series.column https://api.highcharts.com/highcharts/yAxis.maxPadding

© www.soinside.com 2019 - 2024. All rights reserved.