使用plot绘制可联动的柱状图和饼状图

简介: var chart_data; var pie_index; //页面载入 $(function () { chart_data = $.

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();
                }
            });
        }

  

目录
相关文章
|
2月前
|
数据可视化 Python
Matplotlab可视化学习笔记(二):如何绘制柱状图
使用Matplotlib库在Python中绘制柱状图的教程,包括基本的柱状图绘制和多条柱状图的绘制方法。
32 1
Matplotlab可视化学习笔记(二):如何绘制柱状图
|
7月前
|
NoSQL 数据库 Python
PyQt学习(二)-----图形的建立(柱状图,折线图,堆叠柱状图,饼图)
PyQt学习(二)-----图形的建立(柱状图,折线图,堆叠柱状图,饼图)
107 1
|
7月前
|
数据可视化 数据挖掘 Python
Matplotlib图表类型详解:折线图、柱状图与散点图
【4月更文挑战第17天】本文介绍了Python数据可视化库Matplotlib的三种主要图表类型:折线图、柱状图和散点图。折线图用于显示数据随时间或连续变量的变化趋势,适合多条曲线对比;柱状图适用于展示分类数据的数值大小和比较;散点图则用于揭示两个变量之间的关系和模式。通过示例代码展示了如何使用Matplotlib创建这些图表。
uCharts实现一个叠堆柱状图
uCharts实现一个叠堆柱状图
172 1
|
数据可视化 数据处理
R绘图案例|基于分面的折线图绘制
R绘图案例|基于分面的折线图绘制
294 0
|
开发者
pyecharts基础之柱状图的绘制
pyecharts分为v0.5.X和v1两个大版本,0.5.x 版本将不再进行维护推荐使用v1版本
111 0
|
数据可视化 数据挖掘 定位技术
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形(一)
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形
352 0
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形(一)
|
定位技术
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形(二)
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形
178 0
pyecharts绘制条形图、饼图、散点图、词云图、地图等常用图形(二)