美文网首页技术论剑,崛起江湖
如何使用单选按钮控制echarts图形类型切换

如何使用单选按钮控制echarts图形类型切换

作者: 游海东 | 来源:发表于2019-11-29 15:45 被阅读0次

    1. 场景模拟

          在使用Vue + Element +Echarts组合,利用Element中的单选按钮,控制echarts图形类型转换
    

    2. 使用技术

    • Vue.js
    • Element
    • Echarts
    • Webpack

    3. 实现源码

    3.1 图形组件

    <template>
      <el-row :gutter="20">
        <el-col :span="12">
          <el-radio-group v-model="chartType" @change="changeChartType">
            <el-radio label="column">柱形图</el-radio>
            <el-radio label="bar">条状图</el-radio>
            <el-radio label="line">折线图</el-radio>
            <el-radio label="area">面积图</el-radio>
          </el-radio-group>
          <div id="column_chart"></div>
        </el-col>
      </el-row>
    </template>
    
    <script>
      import echarts from 'echarts'
      export default {
        data() {
          return {
            chartType: 'column'
          }
        },
        mounted() {
          this.buildColumn('column')
        },
        methods: {
          buildColumn(val) {
            let column = echarts.init(document.getElementById('column_chart'))
            let option = {
              title: {
                text: '销售量统计',
                x: 'center'
              },
              tooltip: {
                trigger: 'axis',
                axisPointer: {
                  type: 'shadow'
                }
              },
              grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
              },
              xAxis: this.buildXdata(val),
              yAxis: this.buildYdata(val),
              series: this.buildSeries(val)
            }
    
            column.setOption(option)
          },
          buildXdata(val) {
            var xAxis = {}
            if(val == 'bar') {
              xAxis = {
                type: 'value'
              }
            } else {
              xAxis = {
                type: 'category',
                data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月','八月','九月','十月','十一月','十二月'],
                axisTick: {
                  alignWithLabel: true
                }
              }
            }
    
            return xAxis
          },
          buildYdata(val) {
            var yAxis = {}
            if(val == 'bar') {
              yAxis = {
                type: 'category',
                data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月','八月','九月','十月','十一月','十二月'],
                axisTick: {
                  alignWithLabel: true
                }
              }
            } else {
              yAxis = {
                type: 'value'
              }
            }
    
            return yAxis
          },
          buildSeries(val) {
            var series = []
            var chartType = 'bar'
            if(val == 'line' || val == 'area'){
              chartType = 'line'
            }
            if(val == 'area') {
              console.log(val)
              series.push({
                name: '销量',
                type: chartType,
                areaStyle: {},
                data: [589, 258, 985, 456, 789, 321, 412, 623, 745, 454, 569, 784]
              })
            } else {
              series.push({
                name: '销量',
                type: chartType,
                data: [589, 258, 985, 456, 789, 321, 412, 623, 745, 454, 569, 784]
              })
            }
    
            return series
          },
          changeChartType(val) {
            this.buildColumn(val)
          }
        }
      }
    </script>
    
    <style scoped>
      #column_chart{
         width: 1800px;
         height: 800px;
      }
    </style>
    
    

    3.2 路由配置

    import Vue from 'vue'
    import Router from 'vue-router'
    import ElementUI from 'element-ui'
    import 'element-ui/lib/theme-chalk/index.css'
    import Pie from '@/components/charts/pie'
    import Column from '@/components/charts/column'
    
    Vue.use(Router)
    Vue.use(ElementUI)
    
    export default new Router({
      routes: [
        {
          path: '/',
          name: 'Pie',
          component: Pie
        }, {
          path: '/column',
          name: 'Column',
          component: Column
        }
      ]
    })
    
    

    4. 实现效果

    4.1 柱状图

    柱状图

    4.2 条状图

    条状图

    4.3 折线图

    折线图

    4.4 面积图

    面积图

    相关文章

      网友评论

        本文标题:如何使用单选按钮控制echarts图形类型切换

        本文链接:https://www.haomeiwen.com/subject/pprgwctx.html