echarts使用总结
来源:互联网 发布:淘宝中年女装店铺推荐 编辑:程序博客网 时间:2024/06/07 04:57
项目中需要做一个统计图表,第一次使用echarts,发现echarts提供的接口真是太丰富了,在使用过程中主要的操作就是xAxis、Series和Legend,其他的都都可以使用默认配置。
我的是需求是根据一个统计表数据,在前端用统计图表显示出来,不同可能需要显示不同的类型,如折线、柱状图、饼图等,为此我写了一个简单的echart工具类来实现,其中最主要的就是把数据表数据配置到echart的配置(option)的xAxis属性、series属性、legend属性中去,代码如下:
//数据添加到配置中去getOption: function (opts) {var defaults = {option: null, //echart的配置对象data: null, //统计数据xField: "name", //x轴对应的数据列yFields: [] //y轴对应的数据列,格式为[{name:field1,type:"line"},...]}var options = $.extend(defaults, opts);//获取x轴名称var xAxis = [];var legend = [];var series = {};var data = options.data;//如果数据为空,结束操作if (data == null || data.length == 0) {return;}///获取x轴名称for (var i = 0; i < data.length; i++) {xAxis.push(data[i][options.xField]);}///获取series分类,并设置默认类型位barif (options.yFields == null || options.yFields.length == 0) {options.yFields = [];for (var field in data[0]) {if (field != options.xField) {options.yFields.push({ name: field, type: 'bar' });}}}series = echartstool.getSeries(options.yFields, data);//配置X轴if (options.option.xAxis == null || options.option.xAxis.length == 0) {options.option.xAxis = [];options.option.xAxis.push({ type: 'category', data: xAxis, axisPointer: { type: 'shadow' } });} else {if (options.option.xAxis instanceof Array) {options.option.xAxis[0]["data"] = xAxis;} else {options.option.xAxis["data"] = xAxis;}}//设置数据options.option.series = [];for (var i = 0; i < options.yFields.length; i++) {var field = options.yFields[i];options.option.series.push({ name: field.name, type: field.type, label: field.name, data: series[field.name] })legend.push(field.name);}//配置Y轴if (options.option.yAxis == null || options.option.yAxis.length == 0) {options.option.yAxis = [];options.option.yAxis.push({ type: 'value', axisLabel: { formatter: '{value}' } });}//设置图例options.option.legend["data"] = legend;return options.option;}
上面的方法只能用于一些简单的应用中,不能做复杂的图表操作,于是从中提取了两个方法,用来获取最基本的series和xAxis的数据,代码如下
//获取数据序列(//yFields需要添加到series的列名称数组,格式为[{name:field1},{name:field2},...],data为统计表数据的json对象)getSeries: function (yFields, data) {var series = {};for (var i = 0; i < yFields.length; i++) {var field = yFields[i];if (!Boolean(series[field.name])) {series[field.name] = [];}}for (var i = 0; i < data.length; i++) {var row = data[i];for (var field in row) {if (Boolean(series[field])) {series[field].push(row[field]);}}}return series;}
//获取X轴数据getXaxis: function (xField, data) {var xAxis = [];for (var i = 0; i < data.length; i++) {xAxis.push(data[i][xField]);}return xAxis;},
通过getSeries方法获取最原始的数据,就可以在业务逻辑处理时添加其他杂的逻辑操作来配置复杂的option配置。
阅读全文
0 0
- Echarts使用总结
- Echarts 使用总结
- Echarts使用心得总结
- ECharts使用心得总结
- echarts个人使用总结
- echarts 项目使用总结
- 百度 echarts 使用总结
- Echarts插件使用总结
- echarts使用总结
- Echarts使用总结(一)
- Echarts使用心得总结(二)
- Echarts使用心得总结(二)
- Echarts使用心得总结(二)
- ECharts使用心得总结(二)
- Echarts使用心得总结(二)
- Echarts入门教程、使用总结(一)
- Echarts入门教程、使用总结(二)
- Echarts使用心得总结——地图
- LeetCode-017 Letter Combinations of a Phone Number
- 对象数组和对象指针
- oracle数据库sql语句11 函数
- 文章标题
- 神级程序员纯css代码制作旋转闪光球体,css代码超两千行
- echarts使用总结
- BZOJ1975 [Sdoi2010]魔法猪学院 K短路 Astar A* 贪心
- 小红花问题(C++)
- oracle数据库sql语句12 包
- 使用DG4ODBC连接到Postgresql 数据库时报ORA-28500
- 1069. 微博转发抽奖(20)
- 《数据库系统概念》10-ER模型
- this与static详解
- 对STM32的一点了解