一、ECharts
1.简介
ECharts是百度的一个项目,后来百度把Echart捐给apache,用于图表展示,提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。
官方网站:快速上手 - Handbook - Apache ECharts
2.基本使用
入门参考:官网->文档->教程->5分钟上手ECharts
(1)创建html页面:柱图.html
(2)引入ECharts
<!-- 引入 ECharts 文件 --> <script src="echarts.min.js"></script>
复制
(3)定义图表区域
<!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="width: 600px;height:400px;"></div>
复制
(4)柱形图
<script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); // 指定图表的配置项和数据 var option = { title: { text: 'ECharts 入门示例' }, tooltip: {}, legend: { data:['销量'] }, xAxis: { data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script>
复制
(5)折线图
<script> var myChart = echarts.init(document.getElementById('main')); var option = { //x轴是类目轴(离散数据),必须通过data设置类目数据 xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, //y轴是数据轴(连续数据) yAxis: { type: 'value' }, //系列列表。每个系列通过 type 决定自己的图表类型 series: [{ //系列中的数据内容数组 data: [820, 932, 901, 934, 1290, 1330, 1320], //折线图 type: 'line' }] }; myChart.setOption(option); </script>
复制
二、项目中集成Echarts
1.安装Echarts
npm install --save echarts@4.1.0
复制
2.例子
<template> <div class="app-container"> <!--表单--> <el-form :inline="true" class="demo-form-inline"> <el-form-item> <el-select v-model="searchObj.type" clearable placeholder="请选择"> <el-option label="学员登录数统计" value="login_num"/> <el-option label="学员注册数统计" value="register_num"/> <el-option label="课程播放数统计" value="video_view_num"/> <el-option label="每日课程数统计" value="course_num"/> </el-select> </el-form-item> <el-form-item> <el-date-picker v-model="searchObj.begin" type="date" placeholder="选择开始日期" value-format="yyyy-MM-dd" /> </el-form-item> <el-form-item> <el-date-picker v-model="searchObj.end" type="date" placeholder="选择截止日期" value-format="yyyy-MM-dd" /> </el-form-item> <el-button :disabled="btnDisabled" type="primary" icon="el-icon-search" @click="showChart()">查询</el-button> </el-form> <div class="chart-container"> <div id="chart" class="chart" style="height:500px;width:100%" /> </div> </div> </template> <script> import echarts from 'echarts' import daily from'../../api/sta' export default { name: "show", data() { return { searchObj: { type: '', begin: '', end: '' }, btnDisabled: false, chart: null, title: '', xData: [], yData: [] } }, methods: { showChart() { this.initChartData(); this.setChart() }, // 准备图表数据 initChartData() { daily.showChart(this.searchObj).then(response => { // 数据 this.yData = response.data.dataList; // 横轴时间 this.xData = response.data.dateList; // 当前统计类别 switch (this.searchObj.type) { case 'register_num': this.title = '学员注册数统计'; break; case 'login_num': this.title = '学员登录数统计'; break; case 'video_view_num': this.title = '课程播放数统计'; break; case 'course_num': this.title = '每日课程数统计'; break } this.setChart() }) }, // 设置图标参数 setChart() { // 基于准备好的dom,初始化echarts实例 this.chart = echarts.init(document.getElementById('chart')); // console.log(this.chart) // 指定图表的配置项和数据 var option = { // x轴是类目轴(离散数据),必须通过data设置类目数据(xData里面放的是时间) xAxis: { type: 'category', data: this.xData, }, // y轴是数据轴(连续数据) yAxis: { type: 'value' }, // 系列列表。每个系列通过 type 决定自己的图表类型(y轴的数据) series: [{ // data: this.yData, // 折线图 type: 'line' }], //显示标题 title: { text: this.title }, //x轴触发提示 tooltip: { trigger: 'axis' }, dataZoom: [{ show: true, height: 30, xAxisIndex: [ 0 ], bottom: 30, start: 10, end: 80, handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z', handleSize: '110%', handleStyle: { color: '#d3dee5' }, textStyle: { color: '#fff' }, borderColor: '#90979c' }, { type: 'inside', show: true, height: 15, start: 1, end: 35 }] }; this.chart.setOption(option) } } } </script> <style scoped> </style>
复制