近期遇到了一个关于图片的问题,在此简单记录,方便记忆
什么是ECharts ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender
,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
ECharts 提供了常规的折线图
、柱状图
、散点图
、饼图
、K线图
,用于统计的盒形图
,用于地理数据可视化的地图
、热力图
、线图
,用于关系数据可视化的关系图
、treemap
、旭日图
,多维数据可视化的平行坐标
还有用于 BI 的漏斗图
,仪表盘
,并且支持图与图之间的混搭。
具体介绍和一些其他的实例可以去它的 官网 进行查看
配置安装 可以查看 官方文档
配置 当然,示例肯定都是写死的数据,而我们一般使用肯定是需要从数据库来获取数据的。
下面记录一下最近碰到的一个图表,它是一个横向的柱状图,还需要一个排序的功能。
在引入完 ECharts 所需要的一些东西之后,就可以使用了,下方是一段 实例代码。
首先,需要写一个 div 容器 ,里面用来存放绘制的图表
<div class ="col-sm-12 search-collapse" > <div style ="margin:10px;" > <input type ="radio" checked name ="tong" onclick ="getmoney1()" > <label > 前10名</label > <input type ="radio" name ="tong" onclick ="getmoney2()" > <label > 最后10名</label > </div > <div style ="height: 200px;" id ="echarts-bar-chart" > </div > </div >
其次,就可以写相应的处理代码了,由于我使用的是若依的框架,可以在对应的地方直接写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 <script th:inline="javascript" > var prefix = ctx + "接口地址" ; var school = []; var total = []; let that = this ; var money = true ; window .onload = function ( ) { getsearch(); } function getsearch ( ) { setecharts(); $.table.search(); } function getreset ( ) { $.form.reset(); getmoney1(); } function setecharts ( ) { var config = { url : prefix, data : $('#formId' ).serialize(), type : "post" , async : true , beforeSend : function ( ) { $.modal.loading("正在处理中,请稍后..." ); }, success : function (result ) { that.school = []; that.total = []; let len = result.rows.length; var arr = result.rows; if (that.money) arr.sort(function (a, b ) { return a.classaway - b.classaway }); else arr.sort(function (a, b ) { return b.classaway - a.classaway }); console .log("长度" , len) for (let i = 0 ; i < len; i++) { that.school[i] = arr[i].deptName; that.total[i] = arr[i].classaway; } var date = setInterval (() => { clearInterval (date); getexchart(school, total) $.modal.closeLoading(); }, 500 ); } }; $.ajax(config) } function getmoney ( ) { that.money = true ; getsearch() } function getmoney2 ( ) { that.money = false ; getsearch() } function getexchart (n, t ) { var barChart = echarts.init(document .getElementById("echarts-bar-chart" )); var baroption = { title : {}, tooltip : { trigger : 'axis' , }, color : ['#FF7F50' ], legend : { data : ['自定义名称' ], }, grid : { left : 20 , top : 20 , right : 20 , bottom : 20 , containLabel : true }, calculable : true , xAxis : [ { type : 'value' , boundaryGap : [0 , 0.01 ] } ], yAxis : { data : n }, series : [ { name : '2020年' , type : 'bar' , barMaxWidth : '40%' , data : t }, ] }; barChart.setOption(baroption); window .onresize = barChart.resize; } </script>