这是我参与「掘金日新计划 · 6 月更文挑战」的第25天 ,点击查看活动详情
一、ECharts
1、简介
ECahrs是百度的一个项目,用于图表展示,提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。
官方网站:echarts.baidu.com/
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>
3、折线图
实例参考:官网->实例->官方实例 echarts.baidu.com/examples/
折线图.html\
<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
安装ECharts
npm install --save echarts@4.1.0
一、nginx配置
location ~ /ucenter/ {
proxy_pass http://localhost:8140;
}
location ~ /statistics/ {
proxy_pass http://localhost:8150;
}
二、前端页面实现
1、增加路由
src/router/index.js
{
path: '/statistics/daily',
component: Layout,
redirect: '/statistics/daily/create',
name: 'Statistics',
meta: { title: '统计分析', icon: 'chart' },
children: [
{
path: 'create',
name: 'StatisticsDailyCreate',
component: () => import('@/views/statistics/daily/create'),
meta: { title: '生成统计' }
},
{
path: 'chart',
name: 'StatisticsDayChart',
component: () => import('@/views/statistics/daily/chart'),
meta: { title: '统计图表' }
}
]
},
2、创建组件:生成统计
src/views/statistics/daily/create.vue
模板部分
<template>
<div class="app-container">
<!--表单-->
<el-form :inline="true" class="demo-form-inline">
<el-form-item label="日期">
<el-date-picker
v-model="day"
type="date"
placeholder="选择要统计的日期"
value-format="yyyy-MM-dd" />
</el-form-item>
<el-button
:disabled="btnDisabled"
type="primary"
@click="create()">生成</el-button>
</el-form>
</div>
</template>
script部分
<script>
export default {
data() {
return {
day: '',
btnDisabled: false
}
},
methods: {
create() {
//TODO
}
}
}
</script>
3、创建组件:统计图表
src/views/statistics/daily/chart.vue
模板部分
<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部分:暂时显示临时数据
<script>
import echarts from 'echarts'
export default {
data() {
return {
searchObj: {
type: '',
begin: '',
end: ''
},
btnDisabled: false,
title: '',
xData: [],
yData: []
}
},
methods: {
showChart() {
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('chart'));
// 指定图表的配置项和数据
var option = {
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
legend: {
data:['销量', '进货量']
},
xAxis: {
data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'line',
data: [5, 20, 36, 10, 10, 20]
},{
name: '进货量',
type: 'line',
data: [50, 200, 360, 100, 100, 200]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
}
}
}
</script>
\