ECharts 报表事件联动系列二:柱状图,饼状图添加事件

代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>ECharts</title>
    <script src="http://echarts.baidu.com/dist/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="bar" style="width: 600px;height:400px;"></div>

    <div id="pie" style="width: 600px;height:400px;"></div>    

</body>
<script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myBarChart = echarts.init(document.getElementById(‘bar‘));
        var n1 = Math.floor(Math.random()*500+1);
        var n2 = Math.floor(Math.random()*500+1);
        var n3 = Math.floor(Math.random()*500+1);
        var n4 = Math.floor(Math.random()*500+1);
        var n5 = Math.floor(Math.random()*500+1);
        var n6 = Math.floor(Math.random()*500+1);
        // 指定图表的配置项和数据
        var option = {
            title: {
                text: ‘ECharts 入门示例‘
            },
            tooltip: {
                triggerEvent:true},
            legend: {
                data:[‘销量‘,"趋势"]
            },
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
                triggerEvent:true,  //可以点击x轴坐标,
                axisTick: {
                    alignWithLabel: true //坐标值是否在刻度中间
                }
            },
            yAxis: {
                type: ‘value‘,
                splitArea: {
                    show: true
                },
                //百分比显示Y轴
                axisLabel: {
                  show: true,
                  interval: ‘auto‘
                },
                show: true,
                triggerEvent:true //可以点击y轴坐标
            },
            series: [{
                name: ‘销量‘,
                type: ‘bar‘,
                data: [n1, n2, n3, n4, n5, n6],
                itemStyle: {
                    normal: {
                        label: {
                            show: true,
                            position: ‘top‘
                        }
                    }
                }
            },{
                name: ‘趋势‘,
                type: ‘line‘,
                data: [n1, n2, n3, n4, n5, n6],
                smooth:false,   //是否为曲线,默认为false
                itemStyle:{
                    normal:{
                        lineStyle:{
                            width:1,       // 虚线的宽度
                            type:‘dotted‘  //‘dotted‘虚线 ‘solid‘实线
                        }
                    }
                }
            }]
        };
        // 使用刚指定的配置项和数据显示图表。
        myBarChart.setOption(option);
        //方法1:https://zhuanlan.zhihu.com/p/33050579
        // var ids = [55,66,85,86,55,544,5,6,8,4,88,89];
      //这样就可以获取到点击柱子或者文本标签对应的id了
      // myBarChart.on(‘click‘, function (params) {
      //     if(params.componentType =="xAxis"){
      //         alert("单击了"+params.value+"x轴标签, 你点击的是第"+(Number(params.event.target.anid.split("_")[1])+1)+"个X标签;当前对应的id为:"+ids[params.event.target.anid.split("_")[1]]);
      //     }else{
      //         alert("单击了"+params.name+"柱状图, 你点击的是第"+(params.dataIndex+1)+"个柱状图;当前对应的id为:"+ids[params.dataIndex]);   //数组下标是从0开始的哦,图也是从0开始的
      //     }
      // });
      //方法二:https://blog.csdn.net/sophia_xiaoma/article/details/78055947
      myBarChart.on(‘click‘, function (params) {
        // 当componentType == "xAxis"或者 ==“yAxisx”时,取被点击时坐标轴的值params.value
            alert("单击了"+params.componentType+"x轴标签"+params.value);
        if(params.componentType == "xAxis"){
            alert("单击了"+params.value+"x轴标签"+params.name);
        }else{
            alert("单击了"+params.name+"柱状图"+params.value);
        }
      });
      //方法三:http://www.jb51.net/article/125820.htm
      // myBarChart.on("click", barConsole);
      // function barConsole(param) {
      //   //     获取data长度
      //   //   alert(option.series[0].data.length);
      //   //      获取地N个data的值
      //     alert(option.series[0].data[i]);
      //   //     获取series中param.dataIndex事件对应的值
      //   //   alert(option.series[param.seriesIndex].data[param.dataIndex]);
      //       // alert(param.value); //与上一行等价
      //   //    获取xAxis当前点击事件索引对应的值,可以用作传参了
      //         // alert(option.xAxis.data[param.dataIndex]);
      //     //param.dataIndex 获取当前点击索引,
      //   //   alert(param.dataIndex);
      //   //  当前点击事件位于series中的索引
      //   //   alert(param.seriesIndex);
      //   //   clickFunc(param.dataIndex);//执行点击效果
      //   //param具体包含的参数见 https://blog.csdn.net/allenjay11/article/details/76033232

      //   //刷新页面
      //   // location.reload();
      //   // window.location.reload();
      //       refresh();

      //   }

      //方法四:饼图添加事件示例 https://www.cnblogs.com/zhzhair-coding/p/6953982.html?utm_source=itdadao&utm_medium=referral
</script>

<script type="text/javascript">
    // 基于准备好的dom,初始化echarts实例
    var myPieChart = echarts.init(document.getElementById(‘pie‘));
    var n1 = Math.floor(Math.random()*500+1);
    var n2 = Math.floor(Math.random()*500+1);
    var n3 = Math.floor(Math.random()*500+1);
    var n4 = Math.floor(Math.random()*500+1);
    var n5 = Math.floor(Math.random()*500+1);
    // 指定图表的配置项和数据
    var option = {
                "legend":{
                    "orient":"vertical",
                    "left":"left"
                },
                "series":[
                    {
                        "data":[
                            {
                                "name":"直接访问",
                                "value":n1
                            },
                            {
                                "name":"邮件营销",
                                "value":n2
                            },
                            {
                                "name":"联盟广告",
                                "value":n3
                            },
                            {
                                "name":"视频广告",
                                "value":n4
                            },
                            {
                                "name":"搜索引擎",
                                "value":n5
                            }
                        ],
                        "center":[
                            "50%",
                            "60%"
                        ],
                        "name":"访问来源",
                        "itemStyle":{
                            "normal":{
                                "label":{
                                    "formatter":"{b}\n{c}\n{d}%",
                                    "show":true
                                }
                            },
                            "emphasis":{
                                "shadowOffsetX":0,
                                "shadowBlur":10,
                                "shadowColor":"rgba(0, 0, 0, 0.5)"
                            }
                        },
                        "radius":"55%",
                        "type":"pie"
                    }
                ],
                "tooltip":{
                    "formatter":"{a} <br/>{b} : {c} ({d}%)",
                    "trigger":"item"
                },
                "title":{
                    "subtext":"纯属虚构",
                    "x":"center",
                    "text":"某站点用户访问来源"
                }
            };
    // 使用刚指定的配置项和数据显示图表。
    myPieChart.setOption(option);

    myPieChart.on("click", pieConsole);
  //方法三:http://www.jb51.net/article/125820.htm
  function pieConsole(param) {
    //     获取data长度
      alert(option.series[0].data.length);
    //      获取地N个data的值
    //   alert(option.series[0].data[i]);
    //     获取series中param.dataIndex事件对应的值
        alert(param.value);
        alert(param.name);
       alert(option.series[param.seriesIndex].data[param.dataIndex].value);
        alert(option.series[param.seriesIndex].data[param.dataIndex].name);
        //   clickFunc(param.dataIndex);//执行点击效果,触发相应js函数
    //param具体包含的方法见 https://blog.csdn.net/allenjay11/article/details/76033232

    //刷新页面
    // location.reload();
    // window.location.reload();
    }
</script>

<!--每5秒自动刷新页面-->
<script type="text/javascript">
    function refresh(){
    // 刷新页面
    // location.reload();
        window.location.reload();
    };

    // setInterval(refresh, 5000);//5秒钟执行一次
</script>
</html>

显示效果

原文地址:https://www.cnblogs.com/huanghongbo/p/9060202.html

时间: 2024-08-02 19:35:48

ECharts 报表事件联动系列二:柱状图,饼状图添加事件的相关文章

PSP 进度条 柱状图 饼状图

9号 类别 开始时间 结束时间 间隔 净时间 燃尽图 8::00 8:20 0 20分钟 站立会议 8:20 8:50 0 30分钟 读构建之法 9:20 13:20 2小时 2小时 四人小组项目 14:00 17:30 0 3个半小时 12号 结对项目 8:00 18:00 2小时 8小时 Coding net Git SSH 19:00 22:00 0 3小时 13号 个人项目 8:00 18:00 2小时 8小时 Coding net Git ssh 19:00 22:00 0小时 3小时

使用JS charts来画图表(二)——饼状图

如上是一个饼状图: 代码如下: <html> <head> <title>部门管理</title> <script type="text/javascript" src="codebase/jscharts.js"></script> </head> <body> <div id="graph">Loading graph...</d

Echarts 简单报表系列三:饼状图

代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="

Excel数据可视化应用(直方图、折线图、饼状图)

直方图:对比关系 直方图是一种统计报告图,是表示资料变化情况的主要工具.直方图由一系列高度不等的的纵向条纹或线段表示数据分布的情况.一般用横轴表示数据类型,纵轴表示分布情况. 例1: 1.右键单击图表的纵坐标轴数据,选择“设置坐标轴格式”命令打开窗格,在“坐标轴选项”下,各类数据设置如下: 2.右键单击图例,选择设置图例格式,选择靠上(或点击图表空白处,点击上方图表工具中的设计,选择下方左侧的“添加图表元素”,选择“图例”.“顶部”) 3.右键单击任一直条(单击一下会自动选择全部直条),选择“添

ECharts 报表事件联动系列四:柱状图,折线图,饼状图实现联动

代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ECharts</title> <!-- <script src="http://echarts.baidu.com/dist/echarts.min.j

C#+JQuery+.Ashx+百度Echarts 实现全国省市地图和饼状图动态数据图形报表的统计

在目前的一个项目中,需要用到报表表现数据,这些数据有多个维度,需要同时表现出来,同时可能会有大量数据呈现的需求,经过几轮挑选,最终选择了百度的echarts作为报表基础类库.echarts功能强大,界面优美.由于客户是淘宝卖家,因此想要实现每个月全国各个省份各自购力如何,大家可以统计其他的,如果GDP 人口 等等. 百度echarts简介请参考 http://echarts.coding.io/doc/example.html 效果图如下:全部是动态数据 JS代码: <!-- Charts La

图表echarts折线图,柱状图,饼状图

总体就是有折线图相关图标的设置,x,y轴的设置,x,y轴或者数据加上单位的设置.饼状图如何默认显示几个数据中的某个数据 折线图:legend(小标题)中间默认是圆圈 改变成直线 在legend设置的时候就改变icon的形状 legend: { data:[ { name:'访问次数', icon:'line' }, { name:'访', icon:'line' }, { name:'访问', icon:'line' }, ], textStyle:{ color:'#fff' }, right

【插件】ECharts---超级强大的图表插件使用(柱状图和饼状图及部分设置)

序言 最近一直在赶项目,遇到过很多问题,也找到了一些解决的方法,现在准备静下心来整理一下这段时间的成果,完善代码,把遇到的问题和解决方法记下来,备忘. 前几天做统计页面的时候,需求为对在线/离线人员统计,对不同类别统计,需要显示统计信息并能单击某一类别触发事件. 用到的插件当然是强大的echarts了.这里为官方文档案例,最全面的还是官方文档啦. html <!-- 统计表 --> <div class="chart" id="leaderchart&quo

iOS:使用贝塞尔曲线绘制图表(折线图、柱状图、饼状图)

1.介绍: UIBezierPath :画贝塞尔曲线的path类 UIBezierPath定义 : 贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度. 曲线的定义有四个点:起始点.终止点(也称锚点)以及两个相互分离的中间点. 滑动两个中间点,贝塞尔曲线的形状会发生变化. UIBezierPath :对象是CGPathRef数据类型的封装,可以方便的让我们画出 矩形 . 椭圆 或者 直线和曲线的组合形状 初始化方法: + (instancetype)bezierPath; /