echarts饼图 +easyui 异步显示数据

刚开始编写echarts的时候一头的雾水,不知道这个动态显示数据应该怎么来表示,后来在不懈地摸索下终于把这一模块的问题解决。

前端我是用的easyui来写的,里面的一些插件datagrid等十分好用,一些朋友可以去尝试一下。在controller中我使用了JsonResult 来

返回一个json数据返回。数据比较简单。希望大家不要介意。

 
 
    @RequestMapping(value = "/chartByArea")
    @ResponseBody
    public JsonResult chartByArea(){
        List<Map> objList = userService.chartByArea();
        JsonResult result = new JsonResult();
        Map<String,List<Map>> data = new HashMap<>();
        data.put("objList",objList);
        result.setStatus("1");
        result.setData(data);
        return result;
    }
public class JsonResult {

    private String status;
    private Map data;
    private String msg;

    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public Map getData() {
        return data;
    }
    public void setData(Map data) {
        this.data = data;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
}

在xml文件里要注意他的resultType
  <select id="chartByArea" resultType="java.util.HashMap">
    SELECT
    D.AREA_CODE title,COUNT(D.AREA_CODE) amount
    FROM  DUSER D
    GROUP BY  d.AREA_CODE
  </select>

下面是jsp中的重点
            <div class="easyui-panel" style="width: 100%"
                 data-options="title:'员工区域分布'">
                <div id="chart0" style="width: 350px;height:200px ">
                    <div class="chart0-content">加载数据...</div>
                </div>
            </div>

$(document).ready(function(){

        $.get('${host}/user/chartByArea', function(data){
            var box = $("#chart0");
            if(data.status === "1"){
                var objList = data.data.objList;
                var chartData = [];
                $.each(objList, function(i, obj){
                    var tobj = {
                        value:obj.AMOUNT,
                        name: chart0formatter(obj.TITLE)
                    };
                    chartData.push(tobj);
                });
                box.find('.chart0-content').remove();
                var chart0 = echarts.init(document.getElementById('chart0'));
                var option0 = {
                    tooltip : {trigger: 'item',formatter: "{a} <br/>{b} : {c} ({d}%)"},
                    color:['#c23531','#2f4554'],
                    legend:{orient: 'vertical', left: 'left',data: ['溪洛渡','成都']},
                    series : [{name: '所在地址',type: 'pie',radius: '55%',center:['65%','60%'],
                        data:[{value:2, name:'溪洛渡'}]  }]
                };
                option0.series[0].data = chartData;
                chart0.setOption(option0);
            }else{
                box.find('.chart0-content').html('请求失败');
            }
        });

        function chart0formatter(TITLE){
            if(TITLE === '1'){
                return '溪洛渡';
            }else if(TITLE === '2') {
                return '成都';
            }
        }
}

记得xml里面写的title和amount,在jsp上赋值给value,name时要大写。这两个属性是放在option里面的series中data的显示式样。
可以通过series里面type来设置样式,pie 是饼图;


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Echarts饼图显示名称和占比,可以使用以下代码配置: 引用\[1\]: ```javascript series: \[{ name: '', type: 'pie', radius: '65%', center: \['50%', '50%'\], label: { normal: { formatter: '{b}:{d}%', textStyle: { fontWeight: 'normal', fontSize: 15 } } }, data: \[\], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } }\] ``` 这段代码中,通过设置`formatter: '{b}:{d}%'`来显示名称和占比,其中`{b}`表示名称,`{d}`表示占比。可以根据需要自定义格式。 引用\[2\]: ```javascript series: \[{ name: '产量', type: 'pie', center: \['22%', '50%'\], radius: \['0', '82%'\], avoidLabelOverlap: false, label: { show: true, position: "inside", formatter: `{b}:{d}%`, color: "#ffffff", fontSize: 12 }, data: this.rows }\] ``` 这段代码中,通过设置`formatter: `{b}:{d}%``来显示名称和占比,其中`{b}`表示名称,`{d}`表示占比。可以根据需要自定义格式。 综上所述,以上两段代码都可以实现Echarts饼图显示名称和占比。 #### 引用[.reference_title] - *1* [Echarts饼图显示数值和百分比](https://blog.csdn.net/yayayu_/article/details/105657717)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [echarts饼图显示占比(内部和外部显示百分比设置)](https://blog.csdn.net/weixin_53791978/article/details/127669321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [echarts饼图pie中间显示总数](https://blog.csdn.net/BDawn/article/details/123841786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值