饼图双圈圈与图例双行排列布局,上下对齐

刚开始学习echart遇到了许多麻烦,图例组件对不齐,感觉很乱

  • 刚接触echart遇到的问题写的学习总结,希望对初学者有所帮助

  • 如果不会配置,或者刚学习不知道怎么下手,可以看我上一篇文章

  • 链接

  • 开始我自学查看文档时,以为是设置图例的间距,结果我错了,我设的itemGap都设到10了,才成了这样,没有上下对齐,第二行还有很多,感觉不匀称。
    在这里插入图片描述

   <script type="text/javascript">
    // c 数据值  b数据名  a 系列名 
            var myApp = echarts.init(document.getElementById('app'));
           var  data1= [
                {value: 335, name: '直达'},
                {value: 310, name: '邮件营销'},
                {value: 234, name: '联盟广告'},
                {value: 135, name: '视频广告'},
                {value: 1048, name: '百度'},
                {value: 251, name: '谷歌'},
                {value: 147, name: '必应'},
                {value: 102, name: '其他'}
            ]
var option ={
    tooltip: {
        trigger: 'item',
        formatter: '{a} <br/>{b}: {c} ({d}%)'
    },
    legend: {
        orient: 'horizontal',
        bottom:'bottom',
        textStyle:{
            borderWidth:1,
            borderColor:'gray',
            padding:[10,10],
            color:'red'
        },
        itemGap:10,
        itemHeight:20,
        itemWidth:20,
        left: 'center',
        align:'auto',
        zlevel:2,
        data: ['直达', '营销广告', '搜索引擎', '邮件营销', '联盟广告', '视频广告', '百度', '谷歌', '必应', '其他'],
        formatter:  function(name){
                        var res = "";
                        for(var i=0;i<data1.length;i++) {
                           if (data1[i].name == name) {  
                            res=data1[i].value;
                           }
                        }
                        return name+'  '+res;
                    },
    },
 series: [
        {
            name:'llr',
            type:'pie',
            radius:[0,'9%'],
        },
        {
            name: '访问来源1',
            type: 'pie',
            selectedMode: 'single',
            radius: ['10%', '30%'],

            label: {
                position: 'inner'
            },
            labelLine: {
                show: false
            },
            data: [
                {value: 335, name: '直达'},//, selected: true 选中默认变大
                {value: 679, name: '营销广告'},
                {value: 1548, name: '搜索引擎'}
            ]
        },
        {
            name: '访问来源',
            type: 'pie',
            radius: ['40%', '55%'],
            label: {
                show:false,//是否显示标签
                position: 'outside',
                formatter: '{a|{a}}\n{hr|}\n  {b|{b}:}{c}  {per|{d}%}  ',//引用自定义
                backgroundColor: '#eee',
                borderColor: '#aaa',
                borderWidth: 1,
                borderRadius: 4,
                rich: {//自定义丰富样式
                    a: {
                        color: '#999',
                        lineHeight: 22,
                        align: 'center'
                    },
                    hr: {
                        borderColor: '#aaa',
                        width: '100%',
                        borderWidth: 0.5,
                        height: 0
                    },
                    b: {
                        fontSize: 16,
                        lineHeight: 33
                    },
                    per: {
                        color: '#eee',
                        backgroundColor: '#334455',
                        padding: [2, 4],
                        borderRadius: 2
                    }
                }
            },
            // 很关键  要在label先隐藏标签
            emphasis:{
                            label:{
                                show:true,//是否显示标签
                                fontSize:'30',//默认12
                                fontWidth:'bold'
                            }
                        },
            data: [
                {value: 335, name: '直达'},
                {value: 310, name: '邮件营销'},
                {value: 234, name: '联盟广告'},
                {value: 135, name: '视频广告'},
                {value: 1048, name: '百度'},
                {value: 251, name: '谷歌'},
                {value: 147, name: '必应'},
                {value: 102, name: '其他'}
            ]
        }
    ]
            }
            myApp.setOption(option);

后来再翻阅文档找到了答案

 legend:[
                {
                    orient: 'horizontal',
                    x : '5%',
                    y : '10%',
                    align: 'left',
                    data: ['直达'],
                    textStyle:{
                        color:'red'
                    }
                },{
                    orient: 'horizontal',
                    x : '30%',
                    y : '10%',
                    align: 'left',
                    data: ['营销广告'],
                    textStyle:{
                        color:'red'
                    }
                },{
                    orient: 'horizontal',
                    x : '55%',
                    y : '10%',
                    align: 'left',
                    data: ['搜索引擎'],
                    textStyle:{
                        color:'red'
                    }
                },{
                    orient: 'horizontal',
                    x : '80%',
                    y : '10%',
                    align: 'left',
                    data: ['邮件营销'],
                    textStyle:{
                        color:'red'
                    }
                },{
                    orient: 'horizontal',
                    x : '5%',
                    y : '15%',
                    align: 'left',
                    data: ['联盟广告'],
                    textStyle:{
                        color:'red'
                    }
                },{
                    orient: 'horizontal',
                    x : '30%',
                    y : '15%',
                    align: 'left',
                    data: ['视频广告'],
                    textStyle:{
                        color:'red'
                    }
                },{
                    orient: 'horizontal',
                    x : '55%',
                    y : '15%',
                    align: 'left',
                    data: ['百度'],
                    textStyle:{
                        color:'red'
                    }
                },{
                    orient: 'horizontal',
                    x : '80%',
                    y : '15%',
                    align: 'left',
                    data: ['百度'],
                    textStyle:{
                        color:'red'
                    }
                }
],

在这里插入图片描述
它们都有x和y,修改这个属性就好了,上下左右任你去

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值