echarts 饼图的一种---南丁格尔玫瑰图按照百分比大小进行排序以及颜色设置的两种方式(普通设置颜色和渐变色设置)

这篇博客介绍了如何使用Echarts实现南丁格尔玫瑰图,根据百分比大小进行排序,并提供了颜色设置的两种方法:普通颜色设置和渐变色设置。博主分享了在前台处理数据的步骤,包括从后台获取数据,根据百分比排序,以及创建匹配图例的数组。通过示例代码展示了如何调整图例和数据,确保它们的对应性,并输出了最终所需的数据格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇博文是记录一下我在开发过程中遇到的一个问题,那就是对于南丁格尔玫瑰图(或者饼图)如何根据百分比大小进行排列,可以很直观的看出数据高低。

首先给大家展示一下官方的样式,具体代码可以去官网上查看:https://www.echartsjs.com/examples/zh/editor.html?c=pie-roseType

 

其次再看一下我优化后的样式,本节主要讲解这个:

 我是在前台页面处理的,后台数据根据自己的实际情况去取数据,我这里是根据服务调用的方式取到的数据,是一个json对象,是下面这种类型的:

其次是我的图例名称,由于不是从后台获取的,是在前台直接写好的,所以这里我声明了一个数组来接收这些数据,但为了不影响图例与数据的对应性,我做了如下操作:将数据的值与我后台拿到的json对象json_data的key值做了比较,如果一样的话,就将数据存到一个新的数组json_arr里,以[name:'图例的name',value : '对应的数据']的格式表示

eg:[value : '100, name : '初中']。然后对这个数组json_arr进行排序,最后把数组json_arr拆分成两个数组,用来单独显示图例,(json_arr是用来替换标准的数据格式的),最后分别把处理好的数据放到option中对应的位置中去就可以了,代码截图如下:

### 绘制 ECharts 嵌套 要使用 ECharts 绘制嵌套,可以通过配置 `series` 属性中的多个对象实现。每个 `series` 对象代表一个独立的层,通过调整其 `radius` `center` 参数可以分别控制大小位置。 以下是具体方法: #### 1. 设置基本结构 ECharts表初始化通常需要指定 DOM 容器以及基础配置项。对于嵌套来说,核心在于定义多组 `series` 数据[^1]。 ```javascript // 初始化 echarts 实例 var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); // 配置项 var option = { series: [ // 外层数据 { type: 'pie', radius: ['50%', '70%'], // 控制外圈半径范围 center: ['50%', '50%'], // 中心点坐标 data: [ { value: 40, name: 'A' }, { value: 60, name: 'B' } ] }, // 内层数据 { type: 'pie', radius: ['20%', '40%'], // 控制内圈半径范围 center: ['50%', '50%'], data: [ { value: 30, name: 'C' }, { value: 70, name: 'D' } ] } ] }; myChart.setOption(option); ``` 上述代码展示了如何创建两个不同层次的,并通过 `radius` 调整内外圆环的比例关系。 #### 2. 自定义样式 为了增强可视化效果,还可以进一步自定义颜色、标签显示等内容。例如,添加 `label` 或者修默认主题配色方案。 ```javascript { label: { show: true, formatter: '{b}: {c} ({d}%)', // 显示名称、数值及百分比 fontSize: 14 }, itemStyle: { color: function(params) { var colors = ['#ff8a65', '#9ccc65']; // 自定义渐变色彩数组 return colors[params.dataIndex]; } } } ``` 以上片段说明了如何利用回调函数动态分配每一块扇区的颜色。 #### 注意事项 - 确保所有 `series` 共享相同的 `center` 值以便保持同心布局。 - 如果存在过多层级,则需合理规划各部分占比以免视觉混乱。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值