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

序言

最近一直在赶项目,遇到过很多问题,也找到了一些解决的方法,现在准备静下心来整理一下这段时间的成果,完善代码,把遇到的问题和解决方法记下来,备忘。

前几天做统计页面的时候,需求为对在线/离线人员统计,对不同类别统计,需要显示统计信息并能单击某一类别触发事件。

用到的插件当然是强大的echarts了。这里为官方文档案例,最全面的还是官方文档啦。

html

 <!-- 统计表 -->
 <div class="chart" id="leaderchart"></div>

初始化

 1  //统计
 2  //下面代码中的this和that都是我本地工程里面用的,可以自己定义变量var mychart来代替this.mychart 3  this.mychart = echarts.init(document.getElementById(‘leaderchart‘), "shine");//初始化并绑定html页面中的div显示统计图形,第二个参数为主题

柱状图

效果:

代码:

 1       var option = {
 2                         title: {
 3                             subtext: ‘人员总数:‘ + result.totalUser  //标题显示总数
 4                         },
 5                         tooltip: {//设置提示
 6                             trigger: ‘item‘,
 7                             formatter: "{b}:{c}",  //提示文本为x轴字段:值
 8                             textStyle: {      //提示文本的样式
 9                                 color: ‘#fff‘,
10                                 fontsize: 12
11                             }
12                         },
13                         xAxis: [  //设置x轴显示字段
14                             {
15                                 type: "category",
16                                 data: [‘在线人员‘, ‘离线人员‘]
17                             }
18                         ],
19                         yAxis: [  //设置y轴显示字段
20                             {
21                                 type: "value",
22                             }
23                         ],
24                         series: [{
25                             type: ‘bar‘,//统计图类型
26                             barWidth: 30,//柱状的宽
27                             itemStyle: {
28                                 normal: {  //默认显示样式
29                                     color: function (params) {  //按照顺序循环显示颜色
30                                         var colorList = [‘rgb(230,182,0)‘, ‘rgb(43,130,29)‘];
31                                         return colorList[params.dataIndex];
32                                     },
33                                     label: {  //柱状上部显示value值
34                                         show: true,
35                                         position: ‘top‘,
36                                         formatter: function (params) {
37                                             return params.value;
38                                         }
39                                     }
40                                 },
41                                 emphasis: {  //鼠标移入样式
42                                     shadowBlur: 10,
43                                     shadowOffsetX: 0,
44                                     shadowColor: ‘rgba(0,0,0,0.4)‘
45                                 }
46                             },
47                             data: [result.total, Outline],//绑定‘在线人员‘, ‘离线人员‘数据,即y轴的值
48                             // markPoint: {//设置标记点,这里没用到就不显示了。
49                             //     data: [
50                             //         { name: ‘在线‘, xAxis: ‘在线人员‘, yAxis: result.total },
51                             //         { name: ‘在线‘, xAxis: ‘离线人员‘, yAxis: Outline }
52                             //     ]
53                             // }
54                         }]
55                     };
56                     this.mychart.setOption(option);//将配置应用到统计图形中

formatter在官网上的定义

饼状图

效果:

代码:

 1     var option = {
 2                     tooltip: {  //提示信息
 3                         trigger: ‘item‘,
 4                         formatter: function (params) {  //设置提示信息的内容
 5                             return ‘<p>占比:‘ + + params.percent + ‘%</p><p>面积:‘ + params.data.value + ‘</p><p>项目数量:‘ + params.data.count;
 6                         },
 7                         textStyle: {  //设置提示信息的样式
 8                             color: ‘#fff‘,
 9                             fontsize: 12
10                         }
11                     },
12                     legend: {  //图例
13                         orient: ‘vertical‘,
14                         x: ‘left‘,
15                         itemWidth: 10,             // 图例图形宽度
16                         itemHeight: 8,             // 图例图形高度
17                         data: infos  //绑定要显示的统计数据,为数组
18                     },
19                     series: [{
20                         type: ‘pie‘,//设置统计图的类型
21                         radius: "55%",//设置饼状图的大小
22                         center: [‘60%‘, ‘50%‘],//设置饼状图的位置
23                         data: infos  //绑定要显示的统计数据,为数组
24                     }]
25                 };
26                 this.mychart.setOption(option);    //将配置应用到统计图形中

统计的数据

 1  //将要传入的参数都定义到里面,name和value为统计的主要参数,其他用作点击事件需要传入的参数,根据自己需要添加。
 2 var infos = [];
 3 var item = {
 4                                         name: mc,//云城区
 5                                         value: pros[i].sum_acreage,//面积值
 6                                         count: pros[i].pro_count,//数量
 7                                         dm: dm,
 8                                         section: pros[i].pro_section || pros[i].pro_use_type,
 9                                         type: statisticType
10                                     };
11                                     infos.push(item);

注册点击事件

 3                 this.mychart.on(‘click‘, function (params) {//为统计图形添加点击事件
 4                     if (params.seriesType == "pie") {//当统计图为饼状图的时候
 5                         var name = params.name;
 6                         var data = params.data;
 7                         that.getProInfo(data.type, data.section, data.dm);//调用的方法函数
 8                     }
 9                     else if (params.seriesType == "bar") {
10                         var name = params.name;//云城区
11                         // var date = $("#dateperson").val();
12                         switch (name) {
13                             case "在线人员":
14                                 that.getPersonLeader(1);//调用的方法函数
15                                 break;
16                             case "离线人员":
17                                 that.getPersonLeader(0);//调用的方法函数
18                                 break;
19                             case "有日志":
20                                 that.getProfileInfo(1);//调用的方法函数
21                                 break;
22                             case "无日志":
23                                 that.getProfileInfo(0);//调用的方法函数
24                                 break;
25                         }
26                     }
27                 });

官网上params的定义

实现整个统计图功能使用的代码和知识点差不多就为以上所述,官网上有很多详细的解释,可以多研究参考。

时间: 2024-08-28 13:51:29

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

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"&

highcharts插件(HighCharts支持的图表类型有曲线图、区域图、柱状图、饼状图、散状点图和综合图表。)

1.兼容性:HighCharts采用纯JavaScript编写,兼容当今大部分的浏览器,包括Safari.IE和火狐等等: HighCharts的几种基本的官方图表示例(6张) 2.图表类型:HighCharts支持图表类型,包括曲线图.区域图.柱状图.饼状图.散状点图和综合图表等等,可以满足各种需求. 3.不受语言约束:HighCharts可以在大多数的WEB开发中使用,并且对个人用户免费,支持ASP,PHP,JAVA,.NET等多种语言中使用. 4.提示功能:HighCharts生成的图表中

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

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

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

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

jqPlot图表插件学习之饼状图和环状图

一.准备工作 官网下载(笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本) 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载对应的js和css(因为笔者在VS2012环境下新建的,并且所需的js和css都会对应的放到js和css文件夹下,请读者根据自己的情况修正加载的路径). 1 <link href="css/jquery.jqplot.min.css" rel="stylesheet" /> 2 <scr

Echarts生成饼状图、条形图以及线形图 JS封装

1.在我们开发程序中,经常会用到生成一些报表,比方说饼状图,条形图,折线图等.不多说了,直接上封装好的代码,如下Echarts.js所示 以下代码是封装在Echarts.js文件中 /** * Created by Administrator on 2015/8/7. */ var charec; // 路径配置 require.config({ paths: { echarts: 'http://echarts.baidu.com/build/dist' } }); // 按需加载所需图表 r

ECharts学习(2)--饼状图之南丁格尔图

1.上一篇中讲了如何绘制一个简单的柱状图,这次要画的是饼图,饼图主要是通过扇形的弧度表现不同类目的数据在总和中的占比,它的数据格式比柱状图更简单,只有一维的数值,不需要给类目.因为不在直角坐标系上,所以也不需要xAxis,yAxis. 2.itemStyle都会有normal和emphasis两个选项,normal选项是正常展示下的样式,emphasis是鼠标 hover 时候的高亮样式.也可以把阴影的效果设置在hover的时候. 3.背景色是全局的,所以直接在 option 下设置backgr

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

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

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