zoukankan      html  css  js  c++  java
  • liquidFill+pie组合图

    一、图例

    二、学习记录
    1、版本对应:echarts-liquidfill@2对应echarts@4;echarts-liquidfill@3对应echarts@5。
    2、echarts-liquidfill的安装:npm install echarts-liquidFill@2。(echarts用的4的版本)
    3、echarts-liquidfill的引用:require('echarts-liquidFill');
    4、饼图中使用的圆角无效,原因暂不明:itemStyle.borderRadius。(???)

    三、示例

    import * as echarts from 'echarts';
    require('echarts-liquidFill');
    
    
    let ua = function _fun(k) {
        return function (a,b) {
            return  b[k] - a[k];
        }
    }
    let colors = ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'];
    let datum = [
        {value: 600, name: '搜索引擎'},
        {value: 100, name: '直接访问'},
        {value: 250, name: '邮件营销'},
        {value: 150, name: '联盟广告'},
        {value: 200, name: '视频广告'}
    ];
    let llDatum = datum.sort(ua('value'));
    llDatum.forEach((item, index)=>{
        item.value = item.value / 1000;
        item['itemStyle'] = {};
        item['itemStyle']['color'] = colors[index];
    });
    
    let option = {
        grid:{
            top: 0,
            left: 0,
            right: 0,
            bottom: 0,
            containLabel: true
        },
        tooltip: {
            trigger: 'item'
        },
        series: [
            {
                name: '访问来源',
                type: 'pie',
                radius: ['70%', '100%'],
                avoidLabelOverlap: false,
                itemStyle: {
                    borderRadius: 10, //此处无效???
                    borderColor: '#fff',
                    borderWidth: 2
                },
                label: {
                    show: false,
                    position: 'center'
                },
                emphasis: {
                    label: {
                        show: false,
                        fontSize: '40',
                        fontWeight: 'bold'
                    }
                },
                labelLine: {
                    show: false
                },
                data: datum.sort(ua('value'))
            },
            {
            type: 'liquidFill',
            shape: 'circle',
            radius: '70%',
            phase: 0,
            period: 'auto',
            color: ['#294D99', '#ff0000', '#1598ED', '#45BDFF'],
            label: {
                position: ['10%', '55%'],
                align: 'left',
                baseline: 'middle',
                formatter: function(params) {
                    console.log('value',params);
                    let str = ''
                    llDatum.forEach((item, index) => {
                        str += item.name + ':' + item.value +'
    ';
                    })
                    return str;
                },
                fontSize: 12,
                color: '#D94854'
            },
            data: llDatum  
        }]
    };
    let myChart = echarts.init(document.getElementById('canvasBox'));
    myChart.setOption(option);
    window.addEventListener("resize", myChart.resize);
    

    四、Liquid Fill Chart API

    data: [], // 数值建议从大到小排序,否则小的会被大的遮挡以致看不到某层;【类型:小数或百分比】
    color: ['#294D99', '#156ACF', '#1598ED', '#45BDFF'],
    center: ['50%', '50%'],
    radius: '50%',
    amplitude: '8%',
    waveLength: '80%',
    phase: 'auto',
    period: 'auto',   //  {number|'auto'|function(value,index)} 定义波浪速度
    direction: 'right', // 定义波浪移动方向
    shape: 'circle',  //`'circle'`, `'rect'`, `'roundRect'`, `'triangle'`, `'diamond'`, `'pin'`, `'arrow'`;
    
    waveAnimation: true,
    animationEasing: 'linear',
    animationEasingUpdate: 'linear',
    animationDuration: 2000,
    animationDurationUpdate: 1000,
    
    outline: {
        show: true,
        borderDistance: 8,
        itemStyle: {
            color: 'none',
            borderColor: '#294D99',
            borderWidth: 8,
            shadowBlur: 20,
            shadowColor: 'rgba(0, 0, 0, 0.25)'
        }
    },
    
    backgroundStyle: {
        color: '#E3F7FF'
    },
    
    itemStyle: {
        opacity: 0.95,
        shadowBlur: 50,
        shadowColor: 'rgba(0, 0, 0, 0.4)'
    },
    
    label: {
        show: true,
        color: '#294D99',
        insideColor: '#fff',
        fontSize: 50,
        fontWeight: 'bold',
    
        align: 'center',
        baseline: 'middle',
        position: 'inside'
    },
    
    emphasis: {
        itemStyle: {
            opacity: 0.8
        }
    }
    }
    
  • 相关阅读:
    elementUI Select 下拉框列表分两列展示
    radio切换后,表格数据记住之前选中的行
    vue 子组件和父组件生命周期顺序
    vue-router理解
    vuex理解
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及应用
    实验二 K-近邻算法及应用
    词法分析可视化MFC
    SEO工具ahrefs各参数详解
  • 原文地址:https://www.cnblogs.com/min77/p/15123427.html
Copyright © 2011-2022 走看看