vue 中画echarts 箱线图代码,并修改横坐标为自己的数据(多系列箱线图 和单组数据的箱线图,两张图的代码)

vue 中画echarts 箱线图代码

在vue中引入 echarts,并画echarts中的箱线图

<template>
  <span>
    <div id="container" style="height:500px;width:600px"></div>
    <div id="main" style="height:500px;width:600px"></div>
  </span>


</template>

<script>

    import * as echarts from "echarts";
    import dataTool from "echarts/extension/dataTool";


export default {
  name: "hometu",
  mounted() {

    var data1 = [];
    var data2 = [];
    var redBoxData = [
        // 红色盒子第1组  这里可以放很多数据,代码后面会自动帮忙计算并取值
        [850, 740, 900, 1070, 930],
        // 红色盒子第2组
        [960, 940, 960, 940, 880],
        // 红色盒子第3组
        [890, 810, 810, 820, 800],
        // 红色盒子第4组
        [850, 840, 780, 810, 760]
    ];
    var redBoxData1 = [
        //
      
        [0.283827805,0.353264777,0.440737863,0.566862608,0.595958517],
        //
        
        [0.283827805,0.353264777,0.440737863,0.566862608,0.595958517],
      // 
      
        [0.283827805,0.353264777,0.440737863,0.566862608,0.595958517],
        // 
        [0.283827805,0.353264777,0.440737863,0.566862608,0.595958517],
        
    ];
    data1.push(echarts.dataTool.prepareBoxplotData(redBoxData));
    data2.push(echarts.dataTool.prepareBoxplotData(redBoxData1));
    console.log('data2',data2)

    //黑色盒子的数据
    var blockBoxData = [
        //黑色盒子第1组
        [850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980, 930, 650, 760, 810, 1000, 1000, 960, 960],
        //黑色盒子第2组
        [960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790, 810, 880, 880, 830, 800, 790, 760, 800],
        //黑色盒子第3组
        [890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920, 890, 860, 880, 720, 840, 850, 850, 780],
        //黑色盒子第4组
        [850, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870, 810, 740, 810, 940, 950, 800, 810, 870]
    ];
    //以此类推,想画几个盒子就直接加数据和118行所说的画下去就好了
    data1.push(echarts.dataTool.prepareBoxplotData(blockBoxData));
    console.log('data',data1)
    let myChart = echarts.init(document.getElementById('container'));
    let option = {
        title: {
            text: '多组数据比较盒须图',
            left: 10,//标题显示的位置
        },
        legend: {
            y: '10%',
            data: [ '红色盒子', '黑色盒子']
        },
        tooltip: {
            trigger: 'item',
            axisPointer: {
                type: 'shadow'
            }
        },
        grid: {
            left: '10%',
            top: '20%',
            right: '10%',
            bottom: '15%'
        },
        xAxis: {
            type: 'category',
            data: ['第1组','第2组','第3组','第4组'],
            boundaryGap: true,
            nameGap: 30,
            splitArea: {
                show: true
            },
            axisLabel: {
                formatter: '{value}'
            },
            splitLine: {
                show: false
            }
        },
        yAxis: {
            /*min:-400,//可自定义y轴的最大和最小值
            max:600,*/
            type: 'value',
            name: 'Value',
            splitArea: {
                show: false
            }
        },
        dataZoom: [
            {
                // type: 'inside',
                // start: 0,
                // end: 20
              type: 'slider',
              show: true,
              height: 14,
              bottom: 10,
              borderColor: 'transparent',
              backgroundColor: '#e2e2e2',
              // 拖拽手柄样式 svg 路径
              handleIcon: 'M512 512m-208 0a6.5 6.5 0 1 0 416 0 6.5 6.5 0 1 0-416 0Z M512 192C335.264 192 192 335.264 192 512c0 176.736 143.264 320 320 320s320-143.264 320-320C832 335.264 688.736 192 512 192zM512 800c-159.072 0-288-128.928-288-288 0-159.072 128.928-288 288-288s288 128.928 288 288C800 671.072 671.072 800 512 800z',
              handleColor: '#aab6c6',
              handleSize: 20,
              handleStyle: {
                borderColor: '#aab6c6',
                shadowBlur: 4,
                shadowOffsetX: 1,
                shadowOffsetY: 1,
                shadowColor: '#e5e5e5'
              },
              start: 0,
              end: 30

            },
            // {
            //     show: true,
            //     height: 20,
            //     type: 'slider',
            //     top: '90%',
            //     xAxisIndex: [0],
            //     start: 0,
            //     end: 20
            // }
        ],
        series: [
            {
                name: '红色盒子',
                type: 'boxplot',
                data: data1[0].boxData,//data[0].boxData代表的是data中红色盒子的数据
                tooltip: {formatter: formatter}
            },
            {
                name: '黑色盒子',
                type: 'boxplot',
                data: data1[1].boxData,//data[0].boxData代表的是data中黑色盒子的数据
                tooltip: {formatter: formatter}
            }
            /*以此类推想画几个盒子,就在后面加,
            {
                name: $.i18n.prop('计划时间'),
                type: '黑色盒子',
                data: data[1].boxData,//data[0].boxData代表的是data中黑色盒子的数据
                tooltip: {formatter: formatter}
            }*/
        ]
    };

    let bar = echarts.init(document.getElementById('main'));
    let option_2 ={
       title: {
            text: '单组数据盒须图',
            left: 10,//标题显示的位置
        },
        legend: {
            y: '10%',
            data: [ '红色盒子']
        },
        tooltip: {
            trigger: 'item',
            axisPointer: {
                type: 'shadow'
            }
        },
        grid: {
            left: '10%',
            top: '20%',
            right: '10%',
            bottom: '15%'
        },
        xAxis: {
            type: 'category',
            data: ['te','e','2','3'],
            boundaryGap: true,
            nameGap: 30,
            splitArea: {
                show: true
            },
            axisLabel: {
                formatter: '{value}'
            },
            splitLine: {
                show: false
            }
        },
        yAxis: {
            /*min:-400,//可自定义y轴的最大和最小值
            max:600,*/
            type: 'value',
            name: 'Value',
            splitArea: {
                show: false
            }
        },
      // dataZoom 为横轴数据多时,给横轴加一个可以拖动的功能
        dataZoom: [
            {
                // type: 'inside',
                // start: 0,
                // end: 20,
              type: 'slider',
              show: true,
              height: 14,
              bottom: 10,
              borderColor: 'transparent',
              backgroundColor: '#e2e2e2',
              // 拖拽手柄样式 svg 路径
              handleIcon: 'M512 512m-208 0a6.5 6.5 0 1 0 416 0 6.5 6.5 0 1 0-416 0Z M512 	192C335.264 192 192 335.264 192 512c0 176.736 143.264 320 320 320s320-143.264 320-320C832 335.264 688.736 192 512 192zM512 800c-159.072 0-288-128.928-288-288 0-159.072 128.928-288 288-288s288 128.928 288 288C800 671.072 671.072 800 512 800z',
              handleColor: '#aab6c6',
              handleSize: 20,
              handleStyle: {
                borderColor: '#aab6c6',
                shadowBlur: 4,
                shadowOffsetX: 1,
                shadowOffsetY: 1,
                shadowColor: '#e5e5e5'
              },
              start: 0,   // 拖动从0,最开始开始
              end: 20  // 拖动在横轴所有数据的20%处停止
            },
            // {
            //     show: true,
            //     height: 20,
            //     type: 'slider',
            //     top: '90%',
            //     xAxisIndex: [0],
            //     start: 0,
            //     end: 20
            // }
        ],
        series: [
            {
                name: '红色盒子',
                type: 'boxplot',
                data: data2[0].boxData,//data[0].boxData代表的是data中红色盒子的数据
                tooltip: {formatter: formatter}
            },
            // {
            //     name: '黑色盒子',
            //     type: 'boxplot',
            //     data: data2[0].boxData,//data[0].boxData代表的是data中黑色盒子的数据
            //     tooltip: {formatter: formatter}
            // }
            /*以此类推想画几个盒子,就在后面加,
            {
                name: $.i18n.prop('计划时间'),
                type: '黑色盒子',
                data: data[1].boxData,//data[0].boxData代表的是data中黑色盒子的数据
                tooltip: {formatter: formatter}
            }*/
        ]
    };


    function formatter(param) {
        return [
            '类别名称: ' + param.name,
            // '上边界: ' + param.data[0],
            '下四分位数: ' + param.data[1],
            '中位数: ' + param.data[2],
            '上四分位数: ' + param.data[3],
            '下边界: ' + param.data[4]
        ].join('<br/>')
    }
    myChart.setOption(option);
    bar.setOption(option_2);
  },

}
</script>

<style scoped>

</style>

多系列数据比较箱线图
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值