通过echarts绘制一个带下钻的面积图
时间: 2023-09-04 17:10:12 浏览: 37
好的,下面是一个简单的使用ECharts绘制带下钻的面积图的示例代码,您可以根据自己的需求进行修改和定制。
HTML代码:
```html
<div id="chart" style="width: 100%; height: 500px;"></div>
```
JavaScript代码:
```javascript
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('chart'));
// 指定图表的配置项和数据
var option = {
title: {
text: '带下钻的面积图'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
toolbox: {
feature: {
dataView: {show: true, readOnly: false},
magicType: {show: true, type: ['line', 'bar']},
restore: {show: true},
saveAsImage: {show: true}
}
},
legend: {
data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎']
},
xAxis: [
{
type: 'category',
boundaryGap: false,
data: ['周一','周二','周三','周四','周五','周六','周日']
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name:'邮件营销',
type:'line',
stack: '总量',
areaStyle: {},
data:[120, 132, 101, 134, 90, 230, 210],
drilldown: '邮件营销'
},
{
name:'联盟广告',
type:'line',
stack: '总量',
areaStyle: {},
data:[220, 182, 191, 234, 290, 330, 310],
drilldown: '联盟广告'
},
{
name:'视频广告',
type:'line',
stack: '总量',
areaStyle: {},
data:[150, 232, 201, 154, 190, 330, 410],
drilldown: '视频广告'
},
{
name:'直接访问',
type:'line',
stack: '总量',
areaStyle: {},
data:[320, 332, 301, 334, 390, 330, 320],
drilldown: '直接访问'
},
{
name:'搜索引擎',
type:'line',
stack: '总量',
label: {
normal: {
show: true,
position: 'top'
}
},
areaStyle: {},
data:[820, 932, 901, 934, 1290, 1330, 1320],
drilldown: '搜索引擎'
}
],
// 下钻数据
drilldown: {
series: [
{
name: '邮件营销',
type: 'bar',
data: ['邮件营销-周一', '邮件营销-周二', '邮件营销-周三', '邮件营销-周四', '邮件营销-周五', '邮件营销-周六', '邮件营销-周日']
},
{
name: '联盟广告',
type: 'bar',
data: ['联盟广告-周一', '联盟广告-周二', '联盟广告-周三', '联盟广告-周四', '联盟广告-周五', '联盟广告-周六', '联盟广告-周日']
},
{
name: '视频广告',
type: 'bar',
data: ['视频广告-周一', '视频广告-周二', '视频广告-周三', '视频广告-周四', '视频广告-周五', '视频广告-周六', '视频广告-周日']
},
{
name: '直接访问',
type: 'bar',
data: ['直接访问-周一', '直接访问-周二', '直接访问-周三', '直接访问-周四', '直接访问-周五', '直接访问-周六', '直接访问-周日']
},
{
name: '搜索引擎',
type: 'bar',
data: ['搜索引擎-周一', '搜索引擎-周二', '搜索引擎-周三', '搜索引擎-周四', '搜索引擎-周五', '搜索引擎-周六', '搜索引擎-周日']
}
]
}
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
// 下钻操作
myChart.on('click', function(params){
if(params.seriesIndex < 5 && params.dataIndex === 0){
myChart.dispatchAction({
type: 'showTip',
seriesIndex: params.seriesIndex,
dataIndex: params.dataIndex
});
} else if(params.seriesIndex < 5 && params.dataIndex > 0){
myChart.setOption({
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一','周二','周三','周四','周五','周六','周日']
},
yAxis: {
type: 'value'
},
series: [
{
name: params.seriesName,
type: 'line',
areaStyle: {},
data: [120, 132, 101, 134, 90, 230, 210],
drilldown: params.seriesName+'-下一级'
}
],
drilldown: {
series: [
{
name: params.seriesName+'-下一级',
type: 'bar',
data: ['下一级-周一', '下一级-周二', '下一级-周三', '下一级-周四', '下一级-周五', '下一级-周六', '下一级-周日']
}
]
}
});
} else if(params.seriesIndex >= 5 && params.dataIndex >= 0){
myChart.setOption({
xAxis: {
type: 'category',
boundaryGap: false,
data: ['下一级-周一', '下一级-周二', '下一级-周三', '下一级-周四', '下一级-周五', '下一级-周六', '下一级-周日']
},
yAxis: {
type: 'value'
},
series: [
{
name: params.seriesName,
type: 'bar',
data: [220, 182, 191, 234, 290, 330, 310],
}
]
});
}
});
```
这段代码会生成一个带有下钻功能的面积图,并且可以通过点击图表上的数据点进行下钻操作,查看更详细的数据信息。