ECharts 二维区域图主要分为线性区域图和非线性区域图两种类型,下面分别介绍它们的写法。
- 线性区域图
线性区域图是指通过连续的线条将不同的数据点连接起来,形成一个面积。下面是线性区域图的基本写法:
// 准备数据 var data = [ [10, 30, 50, 80, 90], [20, 40, 60, 70, 80] ]; // 配置选项 var option = { tooltip: { trigger: 'axis' }, legend: { data: ['数据1', '数据2'] }, xAxis: { type: 'category', boundaryGap: false, data: ['周一', '周二', '周三', '周四', '周五'] }, yAxis: { type: 'value' }, series: [{ name: '数据1', type: 'line', stack: '总量', areaStyle: {}, data: data[0] }, { name: '数据2', type: 'line', stack: '总量', areaStyle: {}, data: data[1] }] }; // 创建图表实例 var myChart = echarts.init(document.getElementById('mychart')); // 渲染图表 myChart.setOption(option);
在上述代码中,我们通过准备数据和配置选项来创建一个 ECharts 实例,并渲染一个线性区域图。其中,数据通过一个二维数组来表示,每一行表示一个数据序列;而选项中,我们指定了数据轴的类型和坐标轴的标签,以及每个数据序列的类型、堆叠方式和区域样式等。
- 非线性区域图
非线性区域图是指通过多个不同的形状来表示不同的数据,它可以显示出多个数据的分布情况。下面是非线性区域图的基本写法:
// 准备数据 var data = [ { name: '数据1', value: [5, 20, 36, 10] }, { name: '数据2', value: [10, 30, 10, 30] } ]; // 配置选项 var option = { tooltip: { trigger: 'item' }, legend: { data: ['数据1', '数据2'] }, xAxis: { type: 'value', boundaryGap: [0, 0.01] }, yAxis: { type: 'value', boundaryGap: [0, 0.01] }, series: [{ name: '数据1', type: 'scatter', symbolSize: function (data) { return Math.sqrt(data[2]) * 5; }, data: data[0] }, { name: '数据2', type: 'scatter', symbolSize: function (data) { return Math.sqrt(data[2]) * 5; }, data: data[1] }] }; // 创建图表实例 var myChart = echarts.init(document.getElementById('mychart')); // 渲染图表 myChart.setOption(option);
在上述代码中,我们通过准备数据和配置选项来创建一个 ECharts 实例,并渲染一个非线性区域图。其中,数据通过一个对象数组来表示,每个对象包含了数据名称和数据点的值;而选项中,我们指定了坐标轴的类型和标签,以及每个数据系列的类型、符号大小和数据点等。
值得注意的是,非线性区域图中的数据点是通过符号来表示的,而不是线条。在这里,我们使用了散点图(scatter)来绘制数据点,通过符号大小的变化来反映数据点的值大小。这里的 `symbolSize` 函数定义了如何根据数据点的值计算符号的大小,这里使用了 `Math.sqrt(data[2]) * 5` 的公式,表示符号大小为数据点第三个值的平方根乘以 5。你可以根据具体的情况来定义符号的大小函数。
评论