Echarts折线+柱状图的多y轴

实现效果:

代码:

<template>
    <div class="test-echart">
        <div id="barLineChart" ref="barLineChart" :style="barLineStyle"></div>
    </div>
</template>
<script>
// import * as echarts from 'echarts' // 方法2 局部引用
export default {
 data () {
    return {      
      barLineStyle: { height: '460px', with: '100%' }, // echarts的样式
      // colors: ['#5793f3', '#d14a61', '#675bba'],
      barLineOption: {
        color: ['#acf', '#fbc', '#baf'],
        title: {
          text: '自定义的折柱图多y轴混合--BarLine',
          left: 'center',
          y: '10',
          textStyle: {
            color: '#888'
          }
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: { type: 'cross' }
        },
        grid: {
          top: '20%',
          right: '20%'
        },
        toolbox: {
          feature: {
            dataView: { show: true, readOnly: false },
            restore: { show: true },
            saveAsImage: { show: true }
          }
        },
        legend: {
          data: ['蒸发量', '降水量', '平均温度'],
          top: '10%'
        },
        xAxis: [
          {
            type: 'category',
            axisTick: {
              alignWithLabel: true
            },
            axisPointer: {
              label: {
                backgroundColor: '#bda' // 鼠标移入x轴线对应的文字背景色
              }
            },
            data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
          }
        ],
        yAxis: [
          {
            type: 'value',
            name: '蒸发量',
            min: 0,
            max: 250,
            position: 'right',
            axisLine: {
              lineStyle: {
                color: '#acf'
              }
            },
            axisLabel: {
              formatter: '{value} ml'
            }
          },
          {
            type: 'value',
            name: '降水量',
            min: 0,
            max: 250,
            position: 'right',
            offset: 80,
            axisLine: {
              lineStyle: {
                color: '#fbc'
              }
            },
            axisLabel: {
              formatter: '{value} ml'
            }
          },
          {
            type: 'value',
            name: '温度',
            min: 0,
            max: 25,
            position: 'left',
            axisLine: {
              lineStyle: {
                color: '#baf'
              }
            },
            axisLabel: {
              formatter: '{value} °C'
            }
          }
        ],
        series: [
          {
            name: '蒸发量',
            type: 'bar',
            data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
          },
          {
            name: '降水量',
            type: 'bar',
            yAxisIndex: 1,
            data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
          },
          {
            name: '平均温度',
            type: 'line',
            yAxisIndex: 2,
            data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
          }
        ]
      }
    }
 },
 mounted () {
   this.$nextTick(() => {
     this.getEcharts()
   })
 },
 methods: {
    // 获取趋势折线图
    getEcharts () {
      // 此处本来是直接调用接口的,这里就写点假数据

      if (this.$refs.barLineChart) {
        // 遇到数据更新,视图未更新两种解决方法 --解决echarts数据更新,页面不刷新问题
        // 1.添加 barLinecharts.clear()
        // // const barLinecharts = echarts.init(this.$refs.barLineChart)
        // const barLinecharts = this.$echarts.init(this.$refs.barLineChart)
        // barLinecharts.clear()
        // // 对实例对象进行配置
        // barLinecharts.setOption(this.barLineOption)
        // ------
        // 2. setOption有3个属性,setOption(option,notMerge,lazyUpdate);第二个notMerge默认为false,即默认合并数据,设置成true之后就不合并数据,从而实现刷新页面的效果。
        // const barLinecharts = echarts.init(this.$refs.barLineChart)
        const barLinecharts = this.$echarts.init(this.$refs.barLineChart)
        barLinecharts.setOption(this.barLineOption, true)
      }
   }
 }
}
</script>
<style lang="scss" scoped>
.test-echart {
  width: 100%;
  height: 500px;
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值