一、堆叠图基本介绍
Echarts是百度开源的一个基于JavaScript的数据可视化库,拥有丰富的图表类型和可扩展性,堆叠图是其中的一种图表类型。堆叠图能够将多个系列的数据堆叠起来,形成一个整体。
堆叠图的特点是:同一类别的数据在图中会被一起堆叠,每个数据点的值都被分成了若干部分,每个部分代表该数据点属于哪个系列,每个数据点所有部分的和表示该类别的总数。堆叠图也可以通过设置offset属性来进行堆叠条形图或者堆叠面积图等。
下面是一个简单的堆叠图的示例代码:
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '堆叠图示例'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
}
},
legend: {
data:['邮件营销','联盟广告','视频广告']
},
toolbox: {
feature: {
saveAsImage: {}
}
},
grid: {
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一','周二','周三','周四','周五','周六','周日']
},
yAxis: {
type: 'value'
},
series: [
{
name:'邮件营销',
type:'line',
stack: '总量',
areaStyle: {},
emphasis: {
focus: 'series'
},
data:[120, 132, 101, 134, 90, 230, 210]
},
{
name:'联盟广告',
type:'line',
stack: '总量',
areaStyle: {},
emphasis: {
focus: 'series'
},
data:[220, 182, 191, 234, 290, 330, 310]
},
{
name:'视频广告',
type:'line',
stack: '总量',
areaStyle: {},
emphasis: {
focus: 'series'
},
data:[150, 232, 201, 154, 190, 330, 410]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
二、堆叠图的主要参数
series: [ { name: '邮件营销', type: 'bar', stack: '广告', data: [120, 132, 101, 134, 90, 230, 210] }, { name: '联盟广告', type: 'bar', stack: '广告', data: [220, 182, 191, 234, 290, 330, 310] }, { name: '视频广告', type: 'bar', stack: '广告2', data: [150, 232, 201, 154, 190, 330, 410] } ]
series: [ { name:'邮件营销', type:'line', stack: '总量', areaStyle: {}, emphasis: { focus: 'series' }, data:[120, 132, 101, 134, 90, 230, 210], // 设为空,则只保留最上层的系列显示颜色来实现区域填充效果 itemStyle: { normal: { color: '' } } }, ... ]
yAxis: { type: 'value', axisLabel: { formatter: '{value} 元' } }, xAxis: { type: 'category', data: ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] }
三、堆叠图小技巧
xAxis: { type: 'value' }, yAxis: { type: 'category', data: ['周一','周二','周三','周四','周五','周六','周日'] }
// 对数据按照从大到小的顺序排序 data: data.sort(function (a, b) { return a.value - b.value; })
// 堆叠图点击事件 myChart.on('click', function (params) { // params中包含了堆叠图被点击的数据信息,可以通过其name属性进行数据过滤和联动 console.log(params.name); // 获取联动图表 var otherChart = echarts.getInstanceByDom(document.getElementById('otherChart')); // 联动更新 otherChart.setOption({ series: [{ id: 'series1', // 联通的series的id data: [...] }] }); });
四、结语
Echarts堆叠图是一种非常实用的数据可视化图表类型,它不仅可以分析数据中的各个部分之间的关系,还能够方便地表现整体与部分之间的比例关系。通过不断对堆叠图的学习和实践,可以掌握Echarts强大的可视化分析能力。