2016-04-14 2 views
1

Я совершенно не знаком с Highcharts, и я сделал два типа из них: spline и pie. Теперь они выглядят следующим образом: enter image description hereНеприятный результат с пирогом highchart

И это: 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 Highchart не изменился. Что еще мне нужно сделать, чтобы добавить к этой линии (кроме type):

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

, чтобы мой pie для представления значений для каждого дня в пределах диапазона, как spline делает, и удалить эти моменты «срез»?

UPDATE: Итак, это то, как я хочу, чтобы мой пирог смотреть: enter image description here

+2

вы можете создать скрипку, пожалуйста? –

+0

Вам, вероятно, понадобится использовать ключи или установить точки данных в качестве объекта с именованными свойствами. Я до сих пор не понимаю, как должна выглядеть круговая диаграмма - может быть, вы могли бы разместить изображение требуемого графика? –

+0

@Kacper Madej Я обновил свой вопрос, так что теперь вы можете увидеть, как должен выглядеть мой пирог – Ognj3n

ответ

0

При обновлении серии о не проходит серию в объекте - только свойство серии, как имя, тип, данные и т.д. Чтобы иметь dataLabels, как на изображении вам нужно будет только установить имена для очков, Highcharts заставит его работать.

Пример: http://jsfiddle.net/tvd6faf9/

Смежные вопросы