echarts饼图南丁格尔玫瑰图属性设置

南丁格尔玫瑰图效果

1、echarts中的图借助于canvas原理进行实现

2.在html中创建一块画布

<div id="main" style="width:600px;height: 400px;">

3.在js中先获取画布元素,初始化echarts;

var myChart = echarts.init(document.getElementById("main"));

4.设置一个变量,里面配置图表的相关信息。

  

 var option = {

   //title图的标题,副标题,以及位置设置

    title : {

        text: '南丁格尔玫瑰图',

        subtext: '纯属虚构',

        x:'center'

    },

    tooltip : {

        trigger: 'item',

        //提示框的数据样式显示

        formatter:"{a}<br/>占比名是{b}:{c} ({d}%) "

     

    },

    //图例相关内容的说明

    legend: {

        x : 'left',

        y : 'center',

        //图例的排列默认属性是:水平或垂直,默认是:水平

        orient:'vertical',

        data:['北京','上海','广州','福建','厦门','武汉','青岛','南京']

    },

    /*

     * toolbox为工具栏;提供导出图片,数据转化,动态数据等信息

     * 保存图片

     */

    toolbox: {

        show : true,//是否显示工具栏组件

        feature : {

            //mark : {show: true},

            //显示图像所提供的数据

            dataView : {show: true, readOnly: false},

            //启用的动态数据类型

            magicType : {

                show: true,

                type: ['pie', 'funnel']

            },

            //配置项还原

            restore : {show: true},

            //保存为图片

            saveAsImage : {show: true}

        }

    },

    calculable : true,//手柄拖拽调整选中的范围

    series : [

        {

            name:'半径模式',

            type:'pie',

            radius : [20, 110],

            center : ['25%', 200],

            roseType : 'radius',

            width: '40%',// for funnel

            max: 40,            // for funnel

            itemStyle : {

              //普通样式设置

                normal : {

                    label : {

                        show : false

                    },

                    labelLine : {

                        show : false

                    }

                },
                //高亮样式设置
                emphasis : {

                    label : {

                        show : true

                    },

                    labelLine : {

                        show : true

                    }

                }

            },

            data:[

                {value:10, name:'北京'},

                {value:5, name:'上海'},

                {value:15, name:'广州'},

                {value:25, name:'福建'},

                {value:20, name:'厦门'},

                {value:35, name:'武汉'},

                {value:30, name:'青岛'},

                {value:40, name:'南京'}

            ],

            color: ['#7EC0EE', '#FF9F7F', '#FFD700', '#C9C9C9', '#E066FF', '#C0FF3E','#BDA29A','#C23531']

        },

        {

            name:'面积模式',

            type:'pie',

            radius : [30, 110],

            center : ['75%', 200],

            roseType : 'area',

            x: '50%',               // for funnel

            max: 40,                // for funnel

            sort : 'ascending',     // for funnel

            data:[

                {value:10, name:'北京'},

                {value:5, name:'上海'},

                {value:15, name:'广州'},

                {value:25, name:'福建'},

                {value:20, name:'厦门'},

                {value:35, name:'武汉'},

                {value:30, name:'青岛'},

                {value:40, name:'南京'}

            ]

        }

    ]

};

5.给myChart设置该属性

myChart.setOption(option);

 

### 如何将 ECharts 中的转换为南丁格尔玫瑰图ECharts 中,可以通过调整 `series` 的配置项,将普通的转换为南丁格尔玫瑰图。具体来说,通过设置 `type: 'pie'` 和 `roseType: true` 或者指定 `roseType: 'radius'`/`roseType: 'area'` 来实现这一效果[^2]。 以下是详细的代码示例: ```javascript // 初始化 echarts 实例 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); // 配置项 var option = { title: { text: '南丁格尔玫瑰图', subtext: '纯属虚构数据', left: 'center' }, tooltip: { trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, legend: { orient: 'vertical', left: 'left', data: ['分类A', '分类B', '分类C', '分类D'] }, series: [ { name: '访问来源', type: 'pie', radius: [0, '70%'], // 设置内外半径范围 center: ['50%', '50%'], roseType: 'area', // 使用面积模式绘制南丁格尔玫瑰图 itemStyle: { borderRadius: 8 }, labelLine: { length: 15, length2: 10 }, data: [ { value: 40, name: '分类A' }, { value: 30, name: '分类B' }, { value: 20, name: '分类C' }, { value: 10, name: '分类D' } ] } ] }; // 渲染表 myChart.setOption(option); ``` 上述代码中,`roseType: 'area'` 表示按照扇区面积的比例来绘制南丁格尔玫瑰图;如果将其改为 `roseType: 'radius'`,则会按照扇区半径的比例进行绘制。 #### 关键参数说明 - **`roseType`**: 控制是否启用南丁格尔玫瑰图以及其计算方式。可以选择 `'radius'`(基于半径比例)或者 `'area'`(基于面积比例)。默认情况下,该属性未开启。 - **`radius`**: 定义的大小范围,默认为 `[0, '75%']`,表示从圆心到外圈占容器宽度的百分比。 - **`data`**: 数据数组,每项包含 `value` 和对应的名称 `name`。 此外,在实际开发过程中,可能还需要自定义样式、动画以及其他交互功能。建议参考官方文档或实例进一步优化表展示效果[^3]。 ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值