Echarts是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。
本文内容为讲解使用ECharts3.x版本绘制中国地图统计信息。
基本步骤:
1.下载echarts.min.js核心脚本库以及还要单独下载china.js中国地图脚本,页面中添加对脚本的引用。
[说明:除了china.js中国地图脚本库外,还有各省份地图脚本,世界地图脚本word.js,按照自己需求来下]。
<!DOCTYPE html>
<html>
<header>
<meta charset="utf-8">
<script src="echarts.min.js"></script> <!--echarts核心脚本库-->
<script src="china.js"></script> <!--中国地图脚本-->
</header>
</html>
2.在绘图前我们需要为 ECharts 准备一个具备高宽的 DOM 容器。
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
</body>
3.然后就可以通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个中国地图,下面是完整代码。
<!DOCTYPE html>
<html>
<header>
<meta charset="utf-8">
<script src="echarts.min.js"></script> <!--echarts核心脚本库-->
<script src="china.js"></script> <!--中国地图脚本-->
</header>
<body>
<!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="mainMap" style="width: 600px;height:400px;"></div> <script type="text/javascript">
var myMap = echarts.init(document.getElementById('mainMap')); //初始化图表
var option = {
tooltip: {
trigger: 'item'
},
legend: { //图例: ['第一季度销售量', '第二季度销售量']
orient: 'vertical',
x: 'left',
itemGap: 1,
itemWidth: 20,
itemHeight: 12,
textStyle: {
fontSize: '12px',
},
data: ['第一季度销售量', '第二季度销售量'],
},
dataRange: { //图例范围
x: 'left',
y: 'bottom',
itemGap: 1,
itemWidth: 20,
itemHeight: 12,
splitList: [
{start: 50},
{start: 41, end: 50},
{start: 31, end: 40},
{start: 21, end: 30, label: '21 到 30(自定义label)'},
{start: 10, end: 20, label: '11 到 20(自定义特殊颜色)', color: 'black'},
{end: 10}
],
color: ['#E0022B', '#E09107', '#A3E00B'],
textStyle: {
fontSize: '12px',
},
},
series: [
{
name: '第一季度销售量',
type: 'map',
mapType: 'china',
roam: false,
itemStyle: {
normal: {
label: {
show: false, //是否显示省名称
textStyle: {
color: "rgb(249, 249, 249)"
}
}
},
emphasis: { label: { show: true } }
},
data: [ //省份数据1
{name: '北京',value: 11 },
{name: '天津',value: 22 },
{name: '四川',value: 33 },
{name: '青海',value: 14 },
{name: '*',value: 3 },
{name: '*',value: 1 },
//...
],
zoom: 1.1, //地图放大比例
},
{
name: '第二季度销售量',
type: 'map',
mapType: 'china',
roam: false,
itemStyle: {
normal: {
label: {
show: false, //是否显示省名称
textStyle: {
color: "rgb(249, 249, 249)"
}
}
},
emphasis: { label: { show: true } }
},
data: [ //省份数据2
{name: '北京',value: 10 },
{name: '天津',value: 20 },
{name: '四川',value: 30 },
{name: '青海',value: 40 },
{name: '*',value: 32 },
{name: '*',value: 23 },
//...
],
zoom: 1.1, //地图放大比例
}
], //地图省份数据
}; //end option
//点击省份跳转
myMap.on('click', function (params) {
var name = params.name;
var value = params.value;
if (value > 0) {
alert(name + ':' + value);
}
});
myMap.setOption(option);
</script>
</body>
</html>
4.效果图如下:
5.补充
地图点击事件处理:
myMap.on('click', function (params) {
var name = params.name;
var value = params.value;
if (value > 0) {
alert(name + ':' + value); //如:"*:40"
}
});
地图主题theme:
在初始化图表的时候指定主题名称
将
var myMap = echarts.init(document.getElementById('mainMap')); //初始化图表
改为
var myMap = echarts.init(document.getElementById('mainMap'), theme); //初始化图表,theme为主题名称。
可从官网下载主题:http://echarts.baidu.com/download-theme.html,
主题使用示例:
<script src="echarts.min.js"></script>
<!-- 引入 vintage 主题 -->
<script src="theme/vintage.js"></script>
<script>
// 第二个参数可以指定前面引入的主题
var chart = echarts.init(document.getElementById('main'), 'vintage');
chart.setOption({
...
});
</script>
官方参考资料:
1.JS API方法详解: http://echarts.baidu.com/api.html
2.图表配置项参考: http://echarts.baidu.com/option.html
3.地图脚本库下载: http://echarts.baidu.com/download-map.html
4.主题脚本库下载: http://echarts.baidu.com/download-theme.html