解决百度Echarts图表坐标轴越界的方法
程序员文章站
2022-06-03 12:32:09
echarts是由百度提供的数据可视化解决方案, 可以让我们快速实现功能丰富的图表,
使用方法
1.引入echarts.min.js文件
下载echart...
echarts是由百度提供的数据可视化解决方案, 可以让我们快速实现功能丰富的图表,
使用方法
1.引入echarts.min.js文件
下载echarts.min.js文件,
创建一个挂载节点
将数据展示到挂载节点
生成数据, 并将数据导入到option配置对象中
// 创建数据 var base = +new date(1968, 9, 3); var oneday = 24 * 3600 * 1000; var date = []; var data = [math.random() * 300]; for (var i = 1; i < 20000; i++) { var now = new date(base += oneday); date.push([now.getfullyear(), now.getmonth() + 1, now.getdate()].join('/')); data.push(math.round((math.random() - 0.5) * 20 + data[i - 1])); } // 创建对象option option = { tooltip: { trigger: 'axis', position: function (pt) { return [pt[0], '10%']; } }, title: { left: 'center', text: '大数据量面积图', }, toolbox: { feature: { datazoom: { yaxisindex: 'none' }, restore: {}, saveasimage: {} } }, xaxis: { type: 'category', boundarygap: false, data: date }, yaxis: { type: 'value', boundarygap: [0, '100%'] }, datazoom: [{ type: 'inside', start: 0, end: 10 }, { start: 0, end: 10, handleicon: 'm10.7,11.9v-1.3h9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4c19.5,16.3,15.6,12.2,10.7,11.9z m13.3,24.4h6.7v23h6.6v24.4z m13.3,19.6h6.7v-1.4h6.6v19.6z', handlesize: '80%', handlestyle: { color: '#fff', shadowblur: 3, shadowcolor: 'rgba(0, 0, 0, 0.6)', shadowoffsetx: 2, shadowoffsety: 2 } }], series: [ { name:'模拟数据', type:'line', smooth:true, symbol: 'none', sampling: 'average', itemstyle: { color: 'rgb(255, 70, 131)' }, areastyle: { color: new echarts.graphic.lineargradient(0, 0, 0, 1, [{ offset: 0, color: 'rgb(255, 158, 68)' }, { offset: 1, color: 'rgb(255, 70, 131)' }]) }, data: data } ] };
将option添加到挂载节点
// 将option数据挂载到main节点 echarts.init(document.getelementbyid('main')).setoption(option);
如何防止坐标轴越界
上方图表如果展示到移动版, 坐标轴可能部分无法显示
解决方法很简单,只需在option中加一个配置项即可
grid:{ containlabel: true },
源码:
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>echarts-demo</title> <script src="./echarts.min.js"></script> </head> <body> <div id="main" style="width:100%;height:400px;"></div> <script> // 创建数据 var base = +new date(1968, 9, 3); var oneday = 24 * 3600 * 1000; var date = []; var data = [math.random() * 300]; for (var i = 1; i < 20000; i++) { var now = new date(base += oneday); date.push([now.getfullyear(), now.getmonth() + 1, now.getdate()].join('/')); data.push(math.round((math.random() - 0.5) * 20 + data[i - 1])); } // 创建对象option option = { tooltip: { trigger: 'axis', position: function (pt) { return [pt[0], '10%']; } }, title: { left: 'center', text: '大数据量面积图', }, toolbox: { feature: { datazoom: { yaxisindex: 'none' }, restore: {}, saveasimage: {} } }, xaxis: { type: 'category', boundarygap: false, data: date }, yaxis: { type: 'value', boundarygap: [0, '100%'] }, datazoom: [{ type: 'inside', start: 0, end: 10 }, { start: 0, end: 10, handleicon: 'm10.7,11.9v-1.3h9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4c19.5,16.3,15.6,12.2,10.7,11.9z m13.3,24.4h6.7v23h6.6v24.4z m13.3,19.6h6.7v-1.4h6.6v19.6z', handlesize: '80%', handlestyle: { color: '#fff', shadowblur: 3, shadowcolor: 'rgba(0, 0, 0, 0.6)', shadowoffsetx: 2, shadowoffsety: 2 } }], series: [ { name:'模拟数据', type:'line', smooth:true, symbol: 'none', sampling: 'average', itemstyle: { color: 'rgb(255, 70, 131)' }, areastyle: { color: new echarts.graphic.lineargradient(0, 0, 0, 1, [{ offset: 0, color: 'rgb(255, 158, 68)' }, { offset: 1, color: 'rgb(255, 70, 131)' }]) }, data: data } ], grid:{ containlabel: true } }; // 将option数据挂载到main节点 echarts.init(document.getelementbyid('main')).setoption(option); </script> </body> </html>
小结:
上面实例有一个在线的版本,, 感兴趣可以打开网页, 体会一下各种配置项的用途
博主开始没有找到正确的解决方法, 导致走了弯路, 最后发现添加一个参数就能顺利解决, 这里分享给大家,希望沉迷开发的小伙伴, 能少走弯路
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。