echart餅圖接收后端json

1.首先在頁面中放入一個<div id="container"></div>

2.使用js渲染出餅圖

var dom = document.getElementById("container");//獲取到dom節(jié)點

var myChart = echarts.init(dom);//將echarts初始化到dom

myChart.showLoading();//顯示

? ? myChart.setOption({

? ? title : {//圖表標題

? ? ? ? text: '答案選擇分布圖',

? ? ? ? x:'center'//居中

? ? },

? ? tooltip : {//鼠標放上去是否提示

? ? ? ? trigger: 'item',//

? ? ? ? formatter: "{a} <br/> : {c} (u0z1t8os%)"

? ? },

? ? toolbox: {//工具欄

? ? ? ? show : true,

? ? ? ? feature : {

? ? ? ? ? ? mark : {show: true},

? ? ? ? ? ? dataView : {show: true, readOnly: false},

? ? ? ? ? ? restore : {show: true},

? ? ? ? ? ? saveAsImage : {show: true}

? ? ? ? }

? ? },

? ? legend: {//圖例組件

? ? bottom: 10,

? ? ? ? left: 'center',

? ? ? ? data: []

? ? },

? ? series : [//系列列表。每個系列通過?type?決定自己的圖表類型

? ? ? ? {

? ? ? ? ? ? name: '訪問來源',

? ? ? ? ? ? type: 'pie',//餅圖

? ? ? ? ? ? radius : '55%',

? ? ? ? ? ? center: ['50%', '60%'],

? ? ? ? ? ? data:[],

? ? ? ? ? ? itemStyle: {

? ? ? ? ? ? ? ? emphasis: {

? ? ? ? ? ? ? ? ? ? shadowBlur: 10,

? ? ? ? ? ? ? ? ? ? shadowOffsetX: 0,

? ? ? ? ? ? ? ? ? ? shadowColor: 'rgba(0, 0, 0, 0.5)'

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ]

});

// 異步加載數據

$.get('#(ctx)/admin/invest/echart_data1/#(id)').done(function (data) {

myChart.hideLoading();

? ? // 填入數據

? ? myChart.setOption({

? ? ? ? series: [{

? ? ? ? ? ? name: '答案選擇人數',

? ? ? ? ? ? data: data.distributeList

? ? ? ? }],

? ? ? ? legend: {

? ? ? ? ? ? data:data.distributeList.name

? ? ? ? }

? ? });

});

//此時需要后端返回JSON數據

{

? ? "countList": [

? ? ? ? {

? ? ? ? ? ? "name": "①.[233]",

? ? ? ? ? ? "value": "1"

? ? ? ? },

? ? ? ? {

? ? ? ? ? ? "name": "②.[33232]",

? ? ? ? ? ? "value": "1"

? ? ? ? }

? ? ],

? ? "distributeList": [

? ? ? ? {

? ? ? ? ? ? "name": "①.[233]",

? ? ? ? ? ? "value": "505f"

? ? ? ? },

? ? ? ? {

? ? ? ? ? ? "name": "②.[33232]",

? ? ? ? ? ? "value": "50"

? ? ? ? }

? ? ]

}


此時會選擇1:拼json,2.新建對象,存儲信息,最后使用JSONUtil進行轉換

這里選擇第二種:

AnswerVO vo = new AnswerVO();

List<AnwerItemVO> countList = new ArrayList<>();? //答案選擇分布

List<AnwerItemVO> distributeList = new ArrayList<>();? //答案人數分布

public class AnswerVO {

private List<AnwerItemVO> countList;

private List<AnwerItemVO> distributeList ;

}

public class AnwerItemVO {

private String name ;

private String value ;

}

countList.add(new AnwerItemVO("有答案",r.getInt("input")+""));

countList.add(new AnwerItemVO("無答案",NumberUtil.sub(r.getInt("sum_input"),r.getInt("input")) +""));

distributeList.add(new AnwerItemVO("有答案",r.getInt("input")+""));

distributeList.add(new AnwerItemVO("無答案",NumberUtil.sub(r.getInt("sum_input"),r.getInt("input")) +""));

vo.setCountList(countList);

vo.setDistributeList(distributeList);

controller里面

Integer id = getParaToInt(0);

AnswerVO rows = investService.getChoiceData(id);

renderJson(JSONUtil.toJsonPrettyStr(rows));

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,916評論 0 13
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,142評論 0 2
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,330評論 0 17
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,246評論 0 38
  • JAVA面試題 1、作用域public,private,protected,以及不寫時的區(qū)別答:區(qū)別如下:作用域 ...
    JA尐白閱讀 1,265評論 1 0

友情鏈接更多精彩內容