zoukankan      html  css  js  c++  java
  • 使用plot绘制可联动的柱状图和饼状图

    var chart_data;
            var pie_index;
            //页面载入
            $(function () {
                chart_data = $.parseJSON($("#txtType0").val()); 
                if(chart_data.length<1){
                    return 0;
                } 
                pie_index = 0;  
                CreateDChart();
                CreatePChart()
            })
            //画饼状图
            function CreatePChart(index){
                var data1 = {label:chart_data[pie_index]["NAME"]+"-已完成",data:chart_data[pie_index]["VALUE"],color:"#3EB9FF"};
                var data2 = {label:chart_data[pie_index]["NAME"]+"-未完成",data:chart_data[pie_index]["VALUE1"],color:"#FFD33A"};
                var pie = $.plot($("#pieChart"),[data1,data2],{series:{pie:{show:true}},legend:{show:false}});
                
            }
            //画柱状图
            function CreateDChart(){
                var options = {
                    series: { shadowSize: 0,bars: { show: true } },
                    grid: { hoverable: true,clickable: true},
                    yaxis: { min: 0, max: 0 },
                    xaxis: { min:0,max:0, ticks: [[0,""]] }
                };
                var data1 = [0,0];
                var data2 = [1,0];
                var flag = 5;
                for(var i=0;i<chart_data.length;i++){
                    if(chart_data[i]["VALUE"]>options.yaxis.max-20){options.yaxis.max = chart_data[i]["VALUE"]+20}
                    if(chart_data[i]["VALUE1"]>options.yaxis.max-20){options.yaxis.max = chart_data[i]["VALUE1"]+20}
                    options.xaxis.ticks.push([i*flag+flag,chart_data[i]["NAME"]]);
                    data1.push([i*flag+flag,chart_data[i]["VALUE"]])
                    data2.push([i*flag+flag-1,chart_data[i]["VALUE1"]])
                }
                options.xaxis.max = chart_data.length*flag+flag
                $.plot($("#dColumnChart"),[{label:"未完成",data:data2,color:"#FFD33A"},{label:"已完成",data:data1,color:"#3EB9FF"}],options)
                bindEvent("dColumnChart");
            }
            //鼠标滑上显示提示信息
            function showTooltip(x, y, contents) {
                $('<div id="tooltip">' + contents + '</div>').css( {
                    position: 'absolute',
                    display: 'none',
                    top: y - 10,
                    left: x + 10,
                    border: '1px solid #fdd',
                    padding: '2px',
                    'background-color': '#fee',
                    opacity: 0.80
                }).appendTo("body").fadeIn(200);
            }
            //柱状图绑定事件
            function bindEvent(placeId){
               $("#"+placeId).bind("plotclick", function (event, pos, item) {
                    if (item) {     
                        var id = item.dataIndex-2;
                        if(id == pie_index){
                            return false;
                        }
                        pie_index = id;
                        CreatePChart();
                    }
                });
                $("#"+placeId).bind("plothover", function (event, pos, item) {
                    if (item) {     
                        var y = item.datapoint[1];
                        var sd = item.series.label+":"+y+"人";
                        if($("#tooltip").text() == sd){
                            if($("#tooltip").offset().left-10 == item.pageX){
                                return false;
                            }
                        }
                        $("#tooltip").remove();                    
                        showTooltip(item.pageX, item.pageY,sd);
                    }
                    else {
                        $("#tooltip").remove();
                    }
                });
            }
    

      

  • 相关阅读:
    入门5查询生成器
    入门4关键概念
    入门3请求处理
    入门2应用结构
    入门1-基础入门
    PHP代码规范
    Bug总结
    数据结构与常用集合总结
    CSS之使用display:inline-block来布局
    nginx,lvs,haproxy+keepalived区别
  • 原文地址:https://www.cnblogs.com/liulun/p/2245966.html
Copyright © 2011-2022 走看看