ECharts饼图技巧:打造断开的环形图

ECharts饼图技巧:打造断开的环形图

效果预览

在数据可视化中,饼图是一种常用的展示不同类别占比的方式。而断开的环形图,又称为甜甜圈图或圆环图,提供了一种新颖的展示方法,它允许用户通过断开部分扇区来突出显示某些数据或增加图表的可读性。

image-20240704113554610

代码思路

实现断开的环形图,关键在于理解ECharts中饼图的data属性和itemStyle属性的配置。通过添加额外的扇区数据项,并将它们的值设置为0或适当较小的数值,可以创建出断开的效果。同时,通过itemStyle中的borderWidthshadowBlur属性,可以增强图表的视觉效果。

核心实现步骤

1. 初始化图表和数据

首先,初始化ECharts图表,并准备需要展示的数据。

function init() {
    var myChart = echarts.init(document.getElementById('ECharts'));
    var scaleData = [
        // ... 数据项
    ];
    // ...
}

2. 配置数据项和样式

为每个数据项添加样式配置,包括渐变色、边框宽度、阴影等。

var data = [];
for (var i = 0; i < scaleData.length; i++) {
    data.push({
        value: scaleData[i].value,
        name: scaleData[i].name,
        itemStyle: {
            normal: {
                borderWidth: 5,
                shadowBlur: 30,
                // 渐变色配置
                borderColor: new echarts.graphic.LinearGradient(...),
                shadowColor: 'rgba(142, 152, 241, 0.6)'
            }
        }
    }, {
        // 添加一个值为4的空白扇区,用于断开环形
        value: 4,
        name: '',
        itemStyle: placeHolderStyle
    });
}

3. 配置系列和图表选项

设置饼图的系列选项,包括名称、类型、半径等,并配置图表的其它选项。

var seriesObj = [{
    name: '',
    type: 'pie',
    clockWise: false,
    radius: [195, 200],
    hoverAnimation: false,
    itemStyle: {
        normal: {
            label: {
                show: true,
                position: 'outside',
                // 标签格式化函数
                formatter: function (params) {
                    // ...
                },
                rich: rich
            },
            labelLine: {
                show: false
            }
        }
    },
    data: data
}];
var option = {
    backgroundColor: '#04243E',
    tooltip: {
        show: false
    },
    legend: {
        show: false
    },
    toolbox: {
        show: false
    },
    series: seriesObj
};
myChart.setOption(option);

总结

通过上述步骤,我们可以实现一个具有断开效果的环形图。这种图表不仅可以提供传统饼图的所有功能,还可以通过断开部分扇区来吸引观众的注意力或展示更多的数据信息。

完整代码

完整代码下载

其他说明

  • 断开环形图的实现依赖于对ECharts配置项的深入理解,特别是dataitemStyle属性。
  • 在实际应用中,可以根据需要调整断开扇区的大小和位置,以达到最佳的视觉效果。
  • 本文提供的代码示例需要根据实际的数据和需求进行调整和完善。

通过本文的介绍,你应该能够掌握在ECharts中实现断开环形图的方法,并能够将其应用到你的数据可视化项目中,以创造出更加吸引人的图表。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在 ECharts中实现环形渐变,可以使用 ECharts 的 `color` 属性来实现。以下是一个简单的示例代码: ```javascript option = { title: { text: '环形渐变', left: 'center' }, tooltip: { trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, series: [ { name: '访问来源', type: 'pie', radius: ['40%', '60%'], avoidLabelOverlap: false, label: { show: false, position: 'center' }, emphasis: { label: { show: true, fontSize: '30', fontWeight: 'bold' } }, labelLine: { show: false }, data: [ {value: 435, name: '直接访问'}, {value: 310, name: '邮件营销'}, {value: 234, name: '联盟广告'}, {value: 135, name: '视频广告'}, {value: 1548, name: '搜索引擎'} ], color: [ new echarts.graphic.LinearGradient(0, 0, 0, 1, [ {offset: 0, color: '#fbb962'}, {offset: 0.5, color: '#f37b1d'}, {offset: 1, color: '#f37b1d'} ]), new echarts.graphic.LinearGradient(0, 0, 0, 1, [ {offset: 0, color: '#00c2ff'}, {offset: 0.5, color: '#008cff'}, {offset: 1, color: '#008cff'} ]), new echarts.graphic.LinearGradient(0, 0, 0, 1, [ {offset: 0, color: '#6fde6f'}, {offset: 0.5, color: '#00c633'}, {offset: 1, color: '#00c633'} ]), new echarts.graphic.LinearGradient(0, 0, 0, 1, [ {offset: 0, color: '#f5d114'}, {offset: 0.5, color: '#e8b027'}, {offset: 1, color: '#e8b027'} ]), new echarts.graphic.LinearGradient(0, 0, 0, 1, [ {offset: 0, color: '#3bafff'}, {offset: 0.5, color: '#0072ff'}, {offset: 1, color: '#0072ff'} ]) ] } ] }; ``` 在这个示例中,我们的有 5 个扇形,每个扇形都有一个渐变颜色。我们使用 `new echarts.graphic.LinearGradient` 方法创建了一个线性渐变,然后将其分配给每个扇形。线性渐变的参数分别为 `0, 0, 0, 1`,表示从上到下的垂直渐变。在 `color` 属性中,我们将每个扇形的颜色设置为线性渐变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

usp1994

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值