ECharts 实现3D嵌套饼图

Stella981
• 阅读 866

      嵌套饼图的实现主要是定义多层数据,实际上只需要写成json格式的数组,多层数据源之间用逗号连接起来,自定义样式之后就可以实现,与非嵌套饼图没有很大的区别。

1.下载Echarts插件,官网地址:http://echarts.baidu.com/download.html

2.HTML页面引入

文件层级机构:

ECharts 实现3D嵌套饼图

源码部分:

    legend:图例说明

<!DOCTYPE html>
<html style="height: 100%">
   <head>
    <meta charset="utf-8">
   </head>
   <body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script type="text/javascript" src="echarts/echarts.js"></script>
<script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
option = {
    backgroundColor:'#FAFAD2',
    title: {
        text: '国民营销信息来源渠道',
        left: 'center',
        //标题栏的高度,值越大,距离顶部的距离越大
        top: 50,
        //标题栏字体的颜色
        textStyle: {
            color: '#FFD700'
        }
    },
   legend:{
     orient:'vertical',
     x:'left',
     data:['直达','营销广告','搜索引擎','邮件营销','联盟广告','视频广告','百度','谷歌','必应','其他']
    },
    tooltip:{
        trigger: 'item',
        //  ( 访问来源:
        //   百度:1048 40.9%)
        formatter: "{a} <br/>{b}:{c} ({d}%)"
    },
    series :[
        {
            //饼图中内容介绍
            name:'客户访问来源',
            //统计表的类型
            type:'pie',
            //饼图的弧度,值越小生成的饼状图越小
            radius : [0,'30%'],
            //饼状图的外围标签,位置定义inner文字标签在扇形内部
            label: {
                normal: {
                        position:'inner'
                    }                
            },
            //指向外围标签的线条,当不定义样式时候线条默认与扇形颜色相同
            labelLine: {
                normal: {
                    show:false
                }
            },
            //内层数据
            data:[
                {value:335, name:'直接访问'},
                {value:310, name:'邮件营销'},
                {value:274, name:'联盟广告'},
                {value:235, name:'视频广告'},
                {value:400, name:'搜索引擎'}
            ]
        },        
            {
            name:'访问来源',
            type:'pie',
            radius:['40%','55%'],
            label:{
            normal:{
            formatter:'{a|{a}}{abg|}\n{hr|}\n  {b|{b}: }{c}  {per|{d}%}',
            //外部标签的背景色
            backgroundColor:'#FFA07A',
            //外部标签的边框颜色
            borderColor:'#DCDCDC',
            borderWidth:1,
            borderRadius:4,
            rich:{
            a:{
            color:'#999',
            lineHeight:22,
            align:'center'
            },
            //外围标签内部划线颜色
             hr: {
                            borderColor: '#708090',
                            width: '100%',
                            borderWidth: 0.5,
                            height: 0
                        },
                        b: {
                            fontSize: 16,
                            lineHeight: 33
                        },
                        //显示百分比数据的颜色和背景色
                        per: {
                            color: '#CD5C5C',
                            backgroundColor: '#FFDEAD',
                            padding: [2, 4],
                            borderRadius: 2
                        }
            }
            
            }
            
            },
            //外层数据
            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:'其他'}            
            ]
            
        }
    
    ]
    
};;
if (option && typeof option === "object") {
    myChart.setOption(option, true);
}

       </script>
   </body>
</html>

实现的效果:

ECharts 实现3D嵌套饼图

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
ECharts 3D 饼图近似实现
忘了从哪里看到的了,有人问如何做一个3D饼图?当时翻了半天EChartsGL配置项,但始终没有找到思路。后来,在观摩学习曲面图(EChartsGL的seriessurface)的官方示例时,偶然得到了这个:!(https://oscimg.oschina.net/oscnet/214aa770269b9c11541d
Stella981 Stella981
3年前
Sass
嵌套规则(NestedRules)Sass允许将一套CSS样式嵌套进另一套样式中,内层的样式将它外层的选择器作为父选择器mainp{color:00ff00;width:97%;.redbox{
Stella981 Stella981
3年前
Python3中的列表用法,看这一篇就够了
类似C语言中的列表用法\创建:列表使用中括号表示,内部元素使用逗号隔开,元素的数据类型允许不一致,允许多层嵌套name
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这