CanvasJS переключение графиков - PullRequest
0 голосов
/ 02 мая 2018

Пожалуйста, помогите,

Мне нужно переключение графиков в canvasjs с помощью ajax. Мои данные поступают из формата JSON. Например, Линейная диаграмма - Круговая диаграмма - Столбчатая диаграмма как наоборот.

Большое спасибо за вашу помощь. Просто покажи мне, как это сделать.

1 Ответ

0 голосов
/ 03 мая 2018

CanvasJS поддерживает динамическое обновление параметров диаграммы. Пожалуйста, взгляните на следующий пример, который показывает рендеринг многосерийной диаграммы из json и изменение типа диаграммы на основе раскрывающегося значения.

var dps1 = [], dps2 = [];
var chart = new CanvasJS.Chart("chartContainer", {            
  title: {
    text: "MultiSeries Chart from JSON"
  },
  animationEnabled: true,
  toolTip: {    
    shared: true
  },
  data: [
    {
			type: "spline",
      dataPoints: dps1
    },
    {
			type: "spline",
      dataPoints: dps2
    }
  ]
});
        
$.when(
    $.getJSON("https://api.myjson.com/bins/zb96f", function(data) {    		
    		for(var i = 0; i < data.length; i++) {
        		dps1.push({ label: data[i].label, y: data[i].y1 });
            dps2.push({ label: data[i].label, y: data[i].y2 });            
          }
      })
    ).then(function() {
    chart.render();
 }); 
 
var chartType = document.getElementById('chartType');
chartType.addEventListener( "change",  function(){
		for(var i = 0; i < chart.options.data.length; i++){
  			chart.options.data[i].type = chartType.options[chartType.selectedIndex].value;
  	}
  	chart.render();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br/><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->   

<div>Chart Type:
  <select id="chartType" name="Chart Type">
    <option value="line">Line</option>
    <option value="column">Column</option>
    <option value="bar">Bar</option>
    <option value="stackedColumn">Stacked Column</option>
    <option value="stackedBar">Stacked Bar</option>
  </select>  
</div>
<div id="chartContainer" style="height: 260px; width: 100%;"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...