Skip to content
On this page

Echarts 📈 ​

Echarts is a powerful charting and visualization library that is widely used in the industry. It is developed by Baidu and is open source. It is written in JavaScript and is based on the powerful zrender library. It is also based on the Apache ECharts project.

Documentation: Echarts Documentation, npm : npm

Installation ​

bash
# npm
npm install echarts
npm install vue-echarts

# yarn
yarn add echarts
yarn add vue-echarts

Usage in Vue File ​

vue
import { defineComponent } from 'vue';
import IEcharts from "vue-echarts";
import * as echarts from 'echarts';

export default defineComponent({
  components: {
    IEcharts
  },
})

Usage in Component ​

vue
<template>
  <IEcharts :key="$q.dark.isActive?'dark':'lite'" :theme="$q.dark.isActive?'dark':'lite'" style="height: 400px;"
                :option="options" :autoresize="true"></IEcharts>
</template>


<script>
import {defineComponent} from 'vue';
import IEcharts from "vue-echarts";
import {useQuasar} from "quasar";
import * as echarts from 'echarts';

export default defineComponent({
  name: "EchartsLineChart",
  components: {
    IEcharts
  },
  setup() {
    const $q = useQuasar()
    return {
      $q
    }
  },
  computed: {

    options() {
      return {
        backgroundColor: 'transparent',
        color: this.$q.dark.isActive ? [] : ['#836af9', '#ffbd1f', '#ffe802', '#FF0087', '#FFBF00'],
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label: {
              backgroundColor: this.$q.dark.isActive ? '' : '#6a7985'
            }
          }
        },
        legend: {
          data: ['Line 1', 'Line 2', 'Line 3', 'Line 4', 'Line 5'],
          bottom: 0
        },
        grid: {
          left: '5%',
          right: '4%',
          bottom: '15%',
          top: '5%'
        },
        xAxis: [
          {
            type: 'category',
            boundaryGap: false,
            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
          }
        ],
        yAxis: [
          {
            type: 'value'
          }
        ],
        series: [
          {
            name: 'Line 1',
            type: 'line',
            stack: 'Total',
            smooth: true,
            lineStyle: {
              width: 0
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: '#836af9'
            },
            emphasis: {
              focus: 'series'
            },
            data: [140, 232, 101, 264, 90, 340, 250]
          },
          {
            name: 'Line 2',
            type: 'line',
            stack: 'Total',
            smooth: true,
            lineStyle: {
              width: 0
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: '#ffbd1f'
            },
            emphasis: {
              focus: 'series'
            },
            data: [120, 282, 111, 234, 220, 340, 310]
          },
          {
            name: 'Line 3',
            type: 'line',
            stack: 'Total',
            smooth: true,
            lineStyle: {
              width: 0
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: '#ffacc4'
            },
            emphasis: {
              focus: 'series'
            },
            data: [320, 132, 201, 334, 190, 130, 220]
          },
          {
            name: 'Line 4',
            type: 'line',
            stack: 'Total',
            smooth: true,
            lineStyle: {
              width: 0
            },
            showSymbol: false,
            areaStyle: {
              opacity: 0.8,
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: 'rgb(255, 0, 135)'
                },
                {
                  offset: 1,
                  color: 'rgb(135, 0, 157)'
                }
              ])
            },
            emphasis: {
              focus: 'series'
            },
            data: [220, 402, 231, 134, 190, 230, 120]
          },
          {
            name: 'Line 5',
            type: 'line',
            stack: 'Total',
            smooth: true,
            lineStyle: {
              width: 0
            },
            showSymbol: false,
            label: {
              show: true,
              position: 'top'
            },
            areaStyle: {
              opacity: 0.8,
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: 'rgb(255, 191, 0)'
                },
                {
                  offset: 1,
                  color: 'rgb(224, 62, 76)'
                }
              ])
            },
            emphasis: {
              focus: 'series'
            },
            data: [220, 302, 181, 234, 210, 290, 150]
          }
        ]
      }
    },
  }
})
</script>