Skip to content

Brush 区域选择组件

基本用法

vue
<script setup>
    import { ref,onMounted } from 'vue'
    import * as echarts from 'echarts';
    import { useVueEcharts } from '@echarts-component/vue'

    const { getOption,options,onBrushselected,setOption } = useVueEcharts();
    onMounted(() => {
        console.log(getOption(),options.value);
        onBrushselected((params)=>{
            let brushed = [];
            let brushComponent = params.batch[0];
            for (let sIdx = 0; sIdx < brushComponent.selected.length; sIdx++) {
                let rawIndices = brushComponent.selected[sIdx].dataIndex;
                brushed.push('[Series ' + sIdx + '] ' + rawIndices.join(', '));
            }
            console.log('brushed item: ' + brushed.join('\n'));
            setOption({
                title: {
                    backgroundColor: '#333',
                    text: 'SELECTED DATA INDICES: \n' + brushed.join('\n'),
                    bottom: 0,
                    right: '10%',
                    width: 100,
                    textStyle: {
                        fontSize: 12,
                        color: '#fff'
                    }
                }
            })
        })
    })
</script>
<template>
    <VueEcharts style="width:100%;height:300px;position:relative;">
        <Legend :data="['bar', 'bar2', 'bar3', 'bar4']" left='10%' />
        <Brush :toolbox="['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear']" :xAxisIndex='0' />
        <Toolbox>
            <Feature prop='dataView' />
            <Feature prop='magicType' :type='["stack"]' />
        </Toolbox>
        <XAxis name='X Axis'  :data='["Class 0","Class 1","Class 2","Class 3","Class 4","Class 5","Class 6","Class 7","Class 8","Class 9"]'>
            <AxisLine onZero />
            <SplitLine :show='false' />
            <SplitArea :show='false' />
        </XAxis>
        <YAxis />
        <Bar name='bar' stack='one' :data='[1.84,0.5,1.05,0.93,0.5,1.56,0.2,0.59,1.29,1.59]'>
            <Emphasis>
                <ItemStyle :shadowBlur='10' shadowColor='rgba(0,0,0,0.3)' />
            </Emphasis>
        </Bar>
        <Bar name='bar2' stack='one' :data='[1.05,0.93,0.5,1.56,0.5,1.29,0.2,0.59,1.05,0.5]'>
            <Emphasis>
                <ItemStyle :shadowBlur='10' shadowColor='rgba(0,0,0,0.3)' />
            </Emphasis>
        </Bar>
        <Bar name='bar3' stack='one' :data='[0.5,1.29,1.05,0.5,1.56,0.2,1.59,0.5,0.5,0.93]'>
            <Emphasis>
                <ItemStyle :shadowBlur='10' shadowColor='rgba(0,0,0,0.3)' />
            </Emphasis>
        </Bar>
        <Bar name='bar4' stack='one' :data='[0.38,0.98,0.19,1.09,1.56,1.11,0.49,0.26,1.59,0.6]'>
            <Emphasis>
                <ItemStyle :shadowBlur='10' shadowColor='rgba(0,0,0,0.3)' />
            </Emphasis>
        </Bar>
    </VueEcharts>
</template>