如何将highchart的dataLabel更改为新位置?

时间:2016-10-09 06:40:14

标签: javascript highcharts

如何将高图的dataLabels更改为此图像的新位置? i want to change to this position

谢谢!

http://jsfiddle.net/ruagiahanoi/6180x5n0/

y: 58,
        dataLabelss: { x: 0, y: -100 },
        color: '#8aea0f',
        drilldown: {
            name: 'Firefox versions',
            categories: ['美元 v31', '澳元 v32'],
            data: [29,29],
            color: ['#0078b4', '#035a82']

1 个答案:

答案 0 :(得分:0)

这可以通过不同的方式实现。我带来的一个from this post来到这里。

http://jsfiddle.net/6180x5n0/1/

var positionLabels = function(chart) {
    var series = chart.series[0],
      dataLabelsGroup = series.dataLabelsGroup,
      xVal;
    Highcharts.each(dataLabelsGroup.element.children, function(d) {
      xVal = (d.attributes.transform.value).substring((d.attributes.transform.value).indexOf('(') + 1, (d.attributes.transform.value).indexOf(','));
      $(d).attr('transform', 'translate(' + xVal + ',135)')
    })
  };

请注意,此函数会将135px添加到数据标签的y坐标。

您需要相应地更改图表的属性:

        chart: {
            type: 'pie',
            events: {
        load: function() {
          positionLabels(this)
        },
        redraw: function() {
          positionLabels(this)
        }
      },
        },

作为替代方案,您可能只想将数据系列标签的y坐标设置为0see fiddle here)。这将使图表在重绘时更加灵活:

           dataLabels: {
                formatter: function () {
                    return this.y > 5 ? this.point.name : null;
                },
                color: '#ffffff',
                distance: -70,
                y: 0
            }

如需进一步阅读,您可能会对此感兴趣:

Placing labels inside pie chart slices (Highchart)