在数据驱动的时代,如何从海量数据中挖掘出有价值的信息成为了关键。ECharts,作为一款功能强大的数据可视化库,以其丰富的图表类型和灵活的配置能力,成为数据分析与展示的利器。本文将揭秘如何利用ECharts实现数据钻取与深度分析,让你轻松驾驭数据,洞察其中的奥秘。
数据钻取:从宏观到微观的视角转换
数据钻取,即在数据分析过程中,通过层层深入,逐步细化数据,以揭示更详细的信息。ECharts提供了多种图表类型,支持从宏观到微观的视角转换,帮助我们更好地理解数据。
1. 雷达图:多维度数据对比
雷达图可以展示多个维度的数据对比,适用于评估多个指标的优劣。以下是一个使用雷达图进行数据钻取的示例代码:
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入雷达图
require('echarts/lib/chart/radar');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
radar: {
indicator: [
{ name: '销售(销售额)', max: 6500 },
{ name: '管理(管理费用)', max: 16000 },
{ name: '信息技术(IT费用)', max: 30000 },
{ name: '客服(客服人数)', max: 38000 },
{ name: '研发(研发投入)', max: 52000 },
{ name: '市场(营销费用)', max: 25000 }
]
},
series: [{
name: '预算 vs 开销',
type: 'radar',
data : [
{
value : [4200, 3000, 20000, 35000, 50000, 18000],
name : '预算分配(Allocated Budget)'
},
{
value : [5000, 14000, 28000, 26000, 42000, 21000],
name : '实际开销(Actual Spending)'
}
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
2. 雷达图:多维度数据对比
漏斗图可以展示数据在不同阶段的变化趋势,适用于分析转化率等指标。以下是一个使用漏斗图进行数据钻取的示例代码:
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入漏斗图
require('echarts/lib/chart/funnel');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '漏斗图'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'label'
}
},
legend: {
data:['访问数量', '咨询数量', '订单数量', '购买数量']
},
xAxis: {
type: 'category',
data: ['访问数量', '咨询数量', '订单数量', '购买数量']
},
yAxis: {
type: 'value'
},
series: [{
name: '访问数量',
type: 'funnel',
left: '10%',
top: 60,
bottom: 60,
width: '80%',
min: 0,
max: 50,
minSize: '0%',
maxSize: '100%',
sort: 'descending',
gap: 0,
label: {
position: 'left',
formatter: '{b}: {c}%'
},
itemStyle: {
borderColor: '#fff',
borderWidth: 1
},
data: [
{value: 60, name: '访问数量'},
{value: 40, name: '咨询数量'},
{value: 20, name: '订单数量'},
{value: 10, name: '购买数量'}
]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
深度分析:挖掘数据背后的故事
深度分析,即在数据钻取的基础上,进一步挖掘数据背后的故事,为决策提供有力支持。ECharts提供了丰富的图表类型和交互功能,帮助我们更好地进行深度分析。
1. 地图:地域分布分析
地图可以展示数据在不同地域的分布情况,适用于分析地域差异等指标。以下是一个使用地图进行深度分析的示例代码:
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入地图
require('echarts/lib/chart/map');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '中国地图',
subtext: '数据来自某电商平台',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left',
data:['销售数量']
},
visualMap: {
type: 'continuous',
min: 0,
max: 100,
left: 'left',
top: 'bottom',
text: ['高','低'], // 文本,默认为数值文本
calculable: true
},
geo: {
map: 'china',
roam: true,
label: {
emphasis: {
show: false
}
},
itemStyle: {
normal: {
areaColor: '#323c48',
borderColor: '#111'
},
emphasis: {
areaColor: '#2a333d'
}
}
},
series: [
{
name: '销售数量',
type: 'map',
mapType: 'china',
roam: true,
label: {
normal: {
show: false
},
emphasis: {
show: true
}
},
data: [
{name: '北京',value: Math.round(Math.random() * 1000)},
{name: '天津',value: Math.round(Math.random() * 1000)},
{name: '上海',value: Math.round(Math.random() * 1000)},
{name: '重庆',value: Math.round(Math.random() * 1000)},
{name: '河北',value: Math.round(Math.random() * 1000)},
{name: '山西',value: Math.round(Math.random() * 1000)},
{name: '辽宁',value: Math.round(Math.random() * 1000)},
{name: '吉林',value: Math.round(Math.random() * 1000)},
{name: '黑龙江',value: Math.round(Math.random() * 1000)},
{name: '江苏',value: Math.round(Math.random() * 1000)},
{name: '浙江',value: Math.round(Math.random() * 1000)},
{name: '安徽',value: Math.round(Math.random() * 1000)},
{name: '福建',value: Math.round(Math.random() * 1000)},
{name: '江西',value: Math.round(Math.random() * 1000)},
{name: '山东',value: Math.round(Math.random() * 1000)},
{name: '河南',value: Math.round(Math.random() * 1000)},
{name: '湖北',value: Math.round(Math.random() * 1000)},
{name: '湖南',value: Math.round(Math.random() * 1000)},
{name: '广东',value: Math.round(Math.random() * 1000)},
{name: '海南',value: Math.round(Math.random() * 1000)},
{name: '四川',value: Math.round(Math.random() * 1000)},
{name: '贵州',value: Math.round(Math.random() * 1000)},
{name: '云南',value: Math.round(Math.random() * 1000)},
{name: '陕西',value: Math.round(Math.random() * 1000)},
{name: '甘肃',value: Math.round(Math.random() * 1000)},
{name: '青海',value: Math.round(Math.random() * 1000)},
{name: '台湾',value: Math.round(Math.random() * 1000)},
{name: '内蒙古',value: Math.round(Math.random() * 1000)},
{name: '广西',value: Math.round(Math.random() * 1000)},
{name: '西藏',value: Math.round(Math.random() * 1000)},
{name: '宁夏',value: Math.round(Math.random() * 1000)},
{name: '新疆',value: Math.round(Math.random() * 1000)},
{name: '香港',value: Math.round(Math.random() * 1000)},
{name: '澳门',value: Math.round(Math.random() * 1000)}
]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
2. 关系图:数据关联分析
关系图可以展示数据之间的关联关系,适用于分析因果关系等指标。以下是一个使用关系图进行深度分析的示例代码:
// 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts');
// 引入关系图
require('echarts/lib/chart/tree');
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: '关系图',
subtext: '数据来自某电商平台',
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c}'
},
series: [{
name: '关系图',
type: 'tree',
data: [{
name: '电商平台',
itemStyle: {
color: '#ff7f50'
},
children: [{
name: '商品',
itemStyle: {
color: '#87cefa'
},
children: [{
name: '手机'
}, {
name: '电脑'
}, {
name: '家电'
}]
}, {
name: '用户',
itemStyle: {
color: '#da70d6'
},
children: [{
name: '消费者'
}, {
name: '商家'
}]
}]
}],
top: '1%',
left: '7%',
bottom: '1%',
right: '20%',
symbolSize: 7,
label: {
position: 'left',
verticalAlign: 'middle',
align: 'right',
fontSize: 9
},
leaves: {
label: {
position: 'right',
verticalAlign: 'middle',
align: 'left'
}
},
expandAndCollapse: true,
animationDuration: 550,
animationDurationUpdate: 750
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
总结
ECharts以其强大的功能和灵活的配置,为我们提供了丰富的数据钻取与深度分析工具。通过雷达图、漏斗图、地图和关系图等多种图表类型,我们可以从宏观到微观、从地域到关联,全方位地挖掘数据背后的故事。掌握ECharts,让我们轻松驾驭数据,洞察其中的奥秘。
