数据可视化JS库ECharts | 青训营笔记

40 阅读1分钟

这是我参与「第四届青训营 」笔记创作活动的第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官网中提供了各种主流图表的模版: