用饼图高清图显示结果时出现问题

时间:2016-04-14 08:30:25

标签: javascript jquery charts highcharts

我对Highcharts完全不熟悉,我制作了两种类型:splinepie。他们现在看起来像这样: enter image description here

而且:enter image description here

我可以立即看到我遇到的问题。由于我有两个按钮,用户可以确定他希望他的图表显示的方式: enter image description here

我成功更新了图表类型:

$('#pie').click(function(){
            if($('#pie').hasClass('active')!=true){
                $('#spline').removeClass('active');
                $('#pie').addClass('active');
                $('#curve_chart').highcharts().series[0].update({
                    type: "pie"
                });
            }
        });

但我不希望这个pie图表看起来像这样。我希望,就像在spline类型中,值代表每一天,而不是Notiflow:35等。这是负责图表的代码:

var type='';
        $('#spline').click(function(){
            if($('#spline').hasClass('active')!=true){
                $('#pie').removeClass('active');
                $('#spline').addClass('active');
                $('#curve_chart').highcharts().series[0].update({
                    type: "spline"
                });
            }
        });

        $('#pie').click(function(){
            if($('#pie').hasClass('active')!=true){
                $('#spline').removeClass('active');
                $('#pie').addClass('active');
                $('#curve_chart').highcharts().series[0].update({
                    type: "pie"
                });
            }
        });

        $(function () {
            if($('#spline').hasClass('active')){
             type='spline';
            }else{
            type='pie';
        }
        $('#curve_chart').highcharts({
            chart: {
                type: type
                    },
            title: {
                text: 'Click through rate:'
                },
            xAxis: {
            categories: [<?php foreach ($percentagePerDay as $key => $value) {
            if ($value != $last) {
            echo substr($key, -2);
            echo ',';
            } else {
            echo substr($key, -2);
            }
            }?>]//key
            },
        yAxis: {
            title: {
            text: 'Percentage'
            }
            },
        series: [{
        name: '<?= $name ?>',
        data: [<?php foreach ($percentagePerDay as $key => $value) {
        if ($value != $last) {
        echo $value;
        echo ',';
        } else {
        echo $value;
        }
        }?>]//value
        }]
        });

        });

我尝试使pie图表代表硬编码值,如下所示:

$('#pie').click(function(){
        if($('#pie').hasClass('active')!=true){
            $('#spline').removeClass('active');
            $('#pie').addClass('active');
            $('#curve_chart').highcharts().series[0].update({
                type: "pie"
                series:[{
                data:[['11',35],['12',15],['13',30],['14',20]]
                }]
            });
        }
    });
            }
        });

但是pie高图并没有改变。我还需要添加到此行(type除外):

 $('#curve_chart').highcharts().series[0].update({});

我的pie代表spline范围内的每一天的值,并删除那些“切片”时刻?

更新 所以,这就是我希望我的馅饼看起来的样子: enter image description here

1 个答案:

答案 0 :(得分:0)

更新系列时o不在对象中传递系列 - 仅限系列属性,如名称,类型,数据等。要在图像中使用dataLabels,您只需要为点设置名称,Highcharts将使它有效。

示例:http://jsfiddle.net/tvd6faf9/