高图未正确显示饼图的0数据

时间:2018-01-06 14:36:28

标签: jquery charts highcharts pie-chart

我有一个包含多个字段的高图(饼图)(这里只添加了两个字段)。这给了我0个值的问题。

条件如下所述:

如果我的第一个字段是100%,饼图会为另一个字段

呈现0%的行

请参阅此小提琴:http://jsfiddle.net/rndmmuz6/4/

data: [{
        name: 'Check1',
        y: 100
    },
    {
        name: 'Check2',
        y: 0
    }]

但如果我的第二个字段为100%,则饼图不会为第一个字段呈现0%字段

请参阅此小提琴:http://jsfiddle.net/rndmmuz6/3/

 data: [{
        name: 'Check1',
        y: 0
    },
    {
        name: 'Check2',
        y: 100
    }]

我希望该行始终显示。

3 个答案:

答案 0 :(得分:1)

此错误已报告here,您可以使用borderWith : 0

plotOptions: {
    pie: {
        allowPointSelect: true,
        cursor: 'pointer',
        dataLabels: {
            enabled: true,
            format: '<b>{point.name}</b>: {point.percentage:.1f} %',
            style: {
                color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
            }
        },
        borderWidth:0
    }
},

Fiddle

答案 1 :(得分:0)

销毁点的图形元素可以是一种解决方法:

    events: {
      load: function() {
        this.series[0].points.forEach(function(p) {
          if(!p.y) {
            p.graphic.destroy();
          }
        });
      }
    }

现场演示: http://jsfiddle.net/kkulig/ojd4wn3f/

答案 2 :(得分:0)

我发现以下代码覆盖了高图的shapeArgs来渲染行

请参阅此小提琴:http://jsfiddle.net/rndmmuz6/7/

Highcharts.wrap(Highcharts.seriesTypes.pie.prototype, 'drawPoints', function (proceed) {
    Highcharts.each(this.points, function (p) {
        if (p.shapeArgs) {
            p.shapeArgs.open = false;
        }
    });
    proceed.call(this);
});