饼图的数据传递

工作需要,在jsp中要求将数据用饼图展示  分别使用接口型和交互型进行了数据的传递

借鉴插件:echarts

网址链接:http://echarts.baidu.com/examples.html#chart-type-pie

jar包引入:

    <script src="<%=basePath%>/js/echarts.js"></script>
容器示例:

     <div id="countlist" style="width: 800px;height:400px;"></div>

代码示例:关键数据(legenddate:所显示的按钮--seriesdate:所展示的比例及名称)关键在于要将这两个属性拼接成json类型字符串

var myChart = echarts.init(document.getElementById('countlist'));
                // 指定图表的配置项和数据

    tooltip : {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
        },                var option = {
                    legend: {
                        orient: 'vertical',
                        left: 'left',
                        data: legenddate
                    },
                    series : [
                        {
                            name: '访问来源',
                            type: 'pie',
                            radius : '55%',
                            center: ['50%', '60%'],
                            data:seriesdate,
                            itemStyle: {
                                emphasis: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            }
                        }
                    ]
                };
                // 使用刚指定的配置项和数据显示图表。
                myChart.setOption(option);
   拼接方式:

接口型:var count=data.data;    
                var legenddate=[];    
                var seriesdate=[];
                
                for(var i=0;i<count.length;i++){
                    var dateholdcount=count[i].dateholdcount;
                    var username=count[i].username;
                    var summy=count[i].dateholdcount;
                    legenddate.push(username);
                    seriesdate.push({value:summy, name: username}

);       

交互型:

<%
List list = (List)request.getAttribute("salcount");
double extra = (double)request.getAttribute("extra");
int id;
String username;
double salary;
double sum=0;
String legenddate="";
String seriesdate="";
if(list!=null){
    Iterator it = list.iterator();
    while(it.hasNext())
    {
    TmsUser salcount = (TmsUser)it.next();
    id = salcount.getId();
    username=salcount.getUsername();
    salary=salcount.getSalary();
    legenddate+="'"+username+"',";
    seriesdate+="{value:"+salary+", name:'"+username+"'},";
    sum+=salary;
    }    
}
legenddate+="'额外支出'";
seriesdate+="{value:"+extra+",name:'额外支出'}";
%>


遇到问题:

1、如果需要将两个数据放在同一个div下

需要先销毁dom对象,然后在初始化dom

                echarts.dispose(document.getElementById('countlist'));
                var myChart=echarts.init(document.getElementById('countlist'));

2、数据类型必须符合json格式

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值