1. 程式人生 > >關於Highcharts餅狀(pie)圖AJAX動態賦值的問題

關於Highcharts餅狀(pie)圖AJAX動態賦值的問題

關於Highcharts的餅狀圖(pie)實現起來就比柱狀圖(column)實現起來方便可理解的多。

我先貼出最後效果圖,然後來說說我對餅圖的理解。


官方demo裡面寫的很清楚,series裡面是放資料。可以看出也是可以放入json字串,至於在前臺封裝還是後臺封裝,看需求了。我是用的SpringMVC封裝好直接傳到前臺的,傳到前臺的json是這樣的。


json內部key的命名則是要與demo中的命名相一致,至於雙引號的問題,Highcharts還是能識別,然後顯示資料的。

拿到了json之後就可以在ajax的毀掉函式中直接setData了。

 $.ajax({
          type:"GET",
          url:'expenditure/selectClassifiation',
          success:function(data){
            $('#pie_expenditure').highcharts().series[0].setData(data);
            }
        });

貼一下,整個圖形的前臺程式碼,讓還寫不出的朋友好理解一下
$('#pie_expenditure').highcharts({
	        chart: {
	            plotBackgroundColor: null,
	            plotBorderWidth: null,
	            plotShadow: false
	        },
	        title: {
	            text: '各分類支出佔比'
	        },
	        tooltip: {
	            headerFormat: '{series.name}<br>',
	            pointFormat: '{point.name}: <b>{point.percentage:.1f}%</b>'
	        },
	        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'
	                    }
	                }
	            }
	        },
	        series: [{
	            type: 'pie',
	            name: '各分類支出佔比',
	        }]
	        
	    });
	   
	   $.ajax({
          type:"GET",
          url:'expenditure/selectClassifiation',
          success:function(data){
            $('#pie_expenditure').highcharts().series[0].setData(data);
            }
        });
})

如果想知道上面的根據時間搜尋功能或者後臺程式碼還請留言,大家一起交流進步,謝謝。