这是我参与「第四届青训营 」笔记创作活动的第8天
数据可视化
数据可视化是关于数据视觉表现形式的科学技术研究。分为科学可视化、信息可视化和可视分析。开发人员主要关注的是信息可视化。数据可视化可以帮助人们记录信息、分析推理、证实假设、交流思想。
一个出色的可视化设计可在最短时间内,使用最少的空间,用最少的笔墨为观众提供最多的信息内涵。
可视化设计原则:
- 准确地展示数据
- 节省笔墨
- 节省空间
- 消除不必要的“无价值”图形
- 在最短时间内传达最多信息
面向前端的可视化工具:
- D3
- Vega
- G2
- ECharts
- ...
ECharts是一个基于 JavaScript 的开源可视化图表库,最初由百度团队开发,后来捐献给了Apache基金会。使用ECharts可以快速构建各种数据可视化图表。
ECharts官网:echarts.apache.org/zh/index.ht…
快速使用
在页面中引入echarts.js
:
<script src="echarts.js"></script>
准备一个用于放置图表的容器,必须指定容器的宽高:
<div id="container" style="width: 800px; height: 300px"></div>
编写JS代码填入数据:
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
let chart = echarts.init(document.getElementById('container'));
// 指定图表的配置项和数据
let option = {
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
legend: {
data: ['销量']
},
xAxis: {
data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
},
yAxis: {},
series: [
{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}
]
};
// 使用刚指定的配置项和数据显示图表。
chart.setOption(option);
</script>
运行页面:
在Vue项目中整合使用
npm安装:
npm install echarts --save
在页面中显示数据图表:
<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 statistics from '@/api/statistics'
export default {
data() {
return {
btnDisabled: false,
searchObj: {},
xData: [],
yData: []
}
},
methods: {
showChart() {
// 发送请求获取统计数据
statistics.getStatisticsData(this.searchObj).then(resp => {
this.xData = resp.data.dateCaculated
this.yData = resp.data.num
let myChart = echarts.init(document.getElementById('chart'));
let option = {
tooltip: {
trigger: "axis"
},
xAxis: {
type: 'category',
data: this.xData
},
yAxis: {
type: 'value'
},
series: [
{
data: this.yData,
type: 'line'
}
]
};
myChart.setOption(option);
})
}
}
}
</script>
运行效果:
在ECharts官网中提供了各种主流图表的模版: