echarts的使用

228 阅读1分钟

这是我参与「掘金日新计划 · 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>

\