ECharts地图详解
1.引入echarts库文件
<script charset="utf-8" type="text/javascript" language="javascript" src="echarts-2.2.7/doc/example/www/js/echarts.js"></script>
2.在页面中新建div用于地图展示
<div id="main" style="height: 450px;width: 100%;"></div>
<script charset="utf-8" type="text/javascript" language="javascript" src="xxx.js"></script>
4.在js脚本中编写代码
$(function() {
// 路径配置
require.config({
paths : {
// echarts: "http://echarts.baidu.com/build/dist"
echarts : "./plugins/echarts-2.2.7/doc/example/www/js"
}
});
// 使用
require(
[
"echarts",
"echarts/chart/map" // 使用柱状图就加载bar模块,按需加载
], function(ec) {
// 基于准备好的dom,初始化echarts图表
var myChart = ec.init(document.getElementById("main"));
var ecConfig = require("echarts/config");
var zrEvent = require("zrender/tool/event");
option = {
title : {
// 是否显示
show: true,
// 主标题文本,"
"指定换行
text: "iphone销量",
// 主标题文本超链接
link: "http://www.baidu.com",
// 指定窗口打开主标题超链接,支持"self" | "blank",不指定等同为"blank"(新窗口)
target: "self",
// 副标题文本,"
"指定换行
subtext: "纯属虚构",
// 副标题文本超链接
sublink: "http://www.baidu.com",
// 指定窗口打开副标题超链接,支持"self" | "blank",不指定等同为"blank"(新窗口)
subtarget: "self",
// 水平安放位置,默认为左侧,可选为:"center" | "left" | "right" | {number}(x坐标,单位px)
x: "center",
// 垂直安放位置,默认为全图顶端,可选为:"top" | "bottom" | "center" | {number}(y坐标,单位px)
y: "top",
// 水平对齐方式,默认根据x设置自动调整,可选为: left" | "right" | "center
textAlign: "center",
// 标题背景颜色,默认透明
backgroundColor: "rgba(0,0,0,0.1)",
// 标题边框颜色
borderColor: "#66FF00",
// 标题边框线宽,单位px,默认为0(无边框)
borderWidth: 1,
// 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同css,见下图
padding: [20,40,20,40],
// 主副标题纵向间隔,单位px,默认为10
itemGap: 20,
// 主标题文本样式
textStyle: {
// 颜色
color: "#0066FF",
// 水平对齐方式,可选为:"left" | "right" | "center"
align: "left",
// 垂直对齐方式,可选为:"top" | "bottom" | "middle"
baseline: "bottom",
// 字体系列
fontFamily: "Arial, 宋体, sans-serif",
// 字号 ,单位px
fontSize: 20,
// 样式,可选为:"normal" | "italic" | "oblique"
fontStyle: "italic",
// 粗细,可选为:"normal" | "bold" | "bolder" | "lighter" | 100 | 200 |... | 900
fontWeight: "normal"
},
// 副标题文本样式
subtextStyle: {
// 颜色
color: "#FF7F50",
// 水平对齐方式,可选为:"left" | "right" | "center"
align: "left",
// 垂直对齐方式,可选为:"top" | "bottom" | "middle"
baseline: "bottom",
// 字体系列
fontFamily: "Arial, 宋体, sans-serif",
// 字号 ,单位px
fontSize: 15,
// 样式,可选为:"normal" | "italic" | "oblique"
fontStyle: "italic",
// 粗细,可选为:"normal" | "bold" | "bolder" | "lighter" | 100 | 200 |... | 900
fontWeight: "normal"
}
},
// 工具提示
tooltip : {
// 显示策略,可选为:true(显示) | false(隐藏)
show: true,
// tooltip主体内容显示策略,只需tooltip触发事件或显示axisPointer而不需要显示内容时可配置该项为false
showContent: true,
// 触发类型,默认数据触发,见下图,可选为:"item" | "axis"
trigger: "item",
// 位置指定,传入{Array},如[x, y], 固定位置[x, y];传入{Function},如function([x, y]) {return [newX,newY]},默认显示坐标为输入参数,用户指定的新坐标为输出返回。
// position: getTooltipPosition(0,0),
// 内容格式器:{string}(Template) | {Function},支持异步回调
/*formatter: function(data){
console.log(data);
return data[1]+":"+data[5].count;
}*/
// 拖拽重计算独有,数据孤岛内容格式器:{string}(Template) | {Function},见表格下方
// islandFormatter:
// 显示延迟,添加显示延迟可以避免频繁切换,特别是在详情内容需要异步获取的场景,单位ms
showDelay: 0,
// 隐藏延迟,单位ms
hideDelay: 0,
// 动画变换时长,单位s,如果你希望tooltip的跟随实时响应,showDelay设置为0是关键,同时transitionDuration设0也会有交互体验上的差别。
transitionDuration: 0,
// 鼠标是否可进入详情气泡中,默认为false,如需详情内交互,如添加链接,按钮,可设置为true。
//enterable: false,
// 提示背景颜色,默认为透明度为0.7的黑色
backgroundColor: "rgba(0,0,0,0.5)",
// 提示边框颜色
borderColor: "#FF7F50",
// 提示边框圆角,单位px,默认为4
borderRadius: 10,
// 提示边框线宽,单位px,默认为0(无边框)
borderWidth: 2,
// 提示内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同css
padding: [15,15,15,15],
// 坐标轴指示器
/*axisPointer:{
// 默认type为line,可选为:"line" | "cross" | "shadow" | "none"(无),指定type后对应style生效
type: "line",
// lineStyle设置直线指示器
lineStyle: {
// 颜色
color:"#48b",
// 线条样式,可选为:"solid" | "dotted" | "dashed", 树图还可以选:"curve" | "broken"
type:"solid",
// 线宽
width:10,
// 折线主线(IE8+)有效,阴影色彩,支持rgba
shadowColor:"rgba(0,0,0,0)",
// 折线主线(IE8+)有效,阴影模糊度,大于0有效
shadowBlur:5,
// 折线主线(IE8+)有效,阴影横向偏移,正值往右,负值往左
shadowOffsetX:3,
// 折线主线(IE8+)有效,阴影纵向偏移,正值往下,负值往上
shadowOffsetY:3
},
// crossStyle设置十字准星指示器
crossStyle:{
// 颜色
color:"#48b",
// 线条样式,可选为:"solid" | "dotted" | "dashed", 树图还可以选:"curve" | "broken"
type:"solid",
// 线宽
width:10,
// 折线主线(IE8+)有效,阴影色彩,支持rgba
shadowColor:"rgba(0,0,0,0)",
// 折线主线(IE8+)有效,阴影模糊度,大于0有效
shadowBlur:5,
// 折线主线(IE8+)有效,阴影横向偏移,正值往右,负值往左
shadowOffsetX:3,
// 折线主线(IE8+)有效,阴影纵向偏移,正值往下,负值往上
shadowOffsetY:3
},
// shadowStyle设置阴影指示器,areaStyle.size默认为"auto"自动计算,可指定具体宽度
shadowStyle:{
// 颜色
color: "rgba(150,150,150,0.3)",
width: "auto",
// 填充样式,目前仅支持"default"(实填充)
type: "default"
}
},*/
// 文本样式,默认为白色字体
textStyle:{
// 颜色
color: "#FF7F50",
// 水平对齐方式,可选为:"left" | "right" | "center"
align: "left",
// 垂直对齐方式,可选为:"top" | "bottom" | "middle"
baseline: "bottom",
// 字体系列
fontFamily: "Arial, 宋体, sans-serif",
// 字号 ,单位px
fontSize: 20,
// 样式,可选为:"normal" | "italic" | "oblique"
fontStyle: "italic",
// 粗细,可选为:"normal" | "bold" | "bolder" | "lighter" | 100 | 200 |... | 900
fontWeight: "normal"
}
},
legend: {
// 显示策略,可选为:true(显示) | false(隐藏)
show: true,
// 布局方式,默认为水平布局,可选为:"horizontal" | "vertical"
orient: "vertical",
// 水平安放位置,默认为全图居中,可选为:"center" | "left" | "right" | {number}(x坐标,单位px)
x: "left",
// 垂直安放位置,默认为全图顶端,可选为:"top" | "bottom" | "center" | {number}(y坐标,单位px)
y: "top",
// 图例背景颜色,默认透明
backgroundColor: "rgba(0,0,0,0.1)",
// 图例边框颜色
borderColor: "#0066FF",
// 图例边框线宽,单位px,默认为0(无边框)
borderWidth: 1,
// 图例内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同css
padding: [15,15,15,15],
// 各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔
itemGap: 20,
// 图例图形宽度
itemWidth: 30,
// 图例图形高度
itemHeight: 20,
// 默认只设定了图例文字颜色,更个性化的是,要指定文字颜色跟随图例,可设color为"auto"
textStyle:{
// 颜色
color: "#FF7F50",
// 水平对齐方式,可选为:"left" | "right" | "center"
align: "left",
// 垂直对齐方式,可选为:"top" | "bottom" | "middle"
baseline: "bottom",
// 字体系列
fontFamily: "Arial, 宋体, sans-serif",
// 字号 ,单位px
fontSize: 20,
// 样式,可选为:"normal" | "italic" | "oblique"
fontStyle: "italic",
// 粗细,可选为:"normal" | "bold" | "bolder" | "lighter" | 100 | 200 |... | 900
fontWeight: "normal"
},
// 文本格式器:{string}(Template) | {Function},模板变量为"{name}",函数回调参数为name
/*formatter: function(data){
console.log(data);
return data[1]+":"+data[5].count;
},*/
// 选择模式,默认开启图例开关,可选single,multiple
selectedMode: true,
// 配置默认选中状态,可配合LEGEND.SELECTED事件做动态数据载入
/*selected: {
"降水量" : false
},*/
// 图例内容数组
data:[{name:"iphone3"/*,textStyle:{Object},icon:{string}*/},
{name:"iphone4"/*,textStyle:{Object},icon:{string}*/},
{name:"iphone5"/*,textStyle:{Object},icon:{string}*/}]
},
// 值域选择,每个图表最多仅有一个值域控件
dataRange: {
// 显示策略,可选为:true(显示) | false(隐藏)
show: true,
// 布局方式,默认为垂直布局,可选为:"horizontal" | "vertical"
orient: "horizontal",
// 水平安放位置,默认为全图左对齐,可选为:"center" | "left" | "right" | {number}(x坐标,单位px)
x: "left",
// 垂直安放位置,默认为全图底部,可选为:"top" | "bottom" | "center" | {number}(y坐标,单位px)
y: "bottom",
// 值域控件背景颜色,默认透明
backgroundColor: "rgba(0,0,0,0.1)",
// 图例边框颜色
borderColor: "#0066FF",
// 图例边框线宽,单位px,默认为0(无边框)
borderWidth: 1,
// 图例内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同css
padding: [15,15,15,15],
// 各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔
itemGap: 20,
// 图例图形宽度
itemWidth: 30,
// 图例图形高度
itemHeight: 20,
// 指定的最小值,eg: 0,默认无,必须参数,唯有指定了splitList时可缺省min。
min: 0,
// 指定的最大值,eg: 100,默认无,必须参数,唯有指定了splitList时可缺省max
max: 2500,
// 小数精度,默认为0,无小数点,当 min ~ max 间在当前精度下无法整除splitNumber份时,精度会自动提高以满足均分,不支持不等划分
precision: 1,
// 分割段数,默认为5,为0时为线性渐变,calculable为true是默认均分100份
splitNumber: 10,
// 自定义分割方式,支持不等距分割。splitList被指定时,splitNumber将被忽略。
/*splitList: [
{start: 1500},
{start: 900, end: 1500},
{start: 310, end: 1000},
{start: 200, end: 300},
{start: 10, end: 200, label: "10 到 200(自定义label)"},
{start: 5, end: 5, label: "5(自定义特殊颜色)", color: "black"},
{end: 10}
],*/
// 用于设置dataRange的初始选中范围。calculable为true时有效。
range: {start: 0, end: 100},
// 选择模式,默认开启值域开关,可选single,multiple
selectedMode: "multiple",
// 是否启用值域漫游,启用后无视splitNumber和splitList,值域显示为线性渐变
calculable : true,
// 是否启用地图hover时的联动响应
hoverLink: true,
// 值域漫游是否实时显示,在不支持Canvas的浏览器中该值自动强制置为false
realtime:true,
// 值域颜色标识,颜色数组长度必须>=2,颜色代表从数值高到低的变化,即颜色数组低位代表数值高的颜色标识 ,支持Alpha通道上的变化(rgba)
color:["#e42515","#fad3d0"],
// 内容格式器:{string}(Template) | {Function},模板变量为"{value}"和"{value2}",代表数值起始值和结束值,函数参数两个,含义同模板变量,当calculable为true时模板变量仅有"{value}"
/*formatter : function(v, v2){
if (v2 < 1000) { return "低于" + v2;}
else if (v > 1000) { return "高于" + v;}
else { return "中"; }
},*/
// 值域文字显示,splitNumber生效时默认以计算所得数值作为值域文字显示,可指定长度为2的文本数组显示简介的值域文本,如["高", "低"],"
"指定换行
text:["高","低"],
// 默认只设定了值域控件文字颜色
textStyle:{
// 颜色
color: "#FF7F50",
// 水平对齐方式,可选为:"left" | "right" | "center"
align: "left",
// 垂直对齐方式,可选为:"top" | "bottom" | "middle"
baseline: "bottom",
// 字体系列
fontFamily: "Arial, 宋体, sans-serif",
// 字号 ,单位px
fontSize: 20,
// 样式,可选为:"normal" | "italic" | "oblique"
fontStyle: "italic",
// 粗细,可选为:"normal" | "bold" | "bolder" | "lighter" | 100 | 200 |... | 900
fontWeight: "normal"
}
},
// 工具箱,每个图表最多仅有一个工具箱
toolbox: {
// 显示策略,可选为:true(显示) | false(隐藏)
show: true,
// 布局方式,默认为水平布局,可选为:"horizontal" | "vertical"
orient : "horizontal",
// 水平安放位置,默认为全图居中,可选为:"center" | "left" | "right" | {number}(x坐标,单位px)
x: "right",
// 垂直安放位置,默认为全图顶端,可选为:"top" | "bottom" | "center" | {number}(y坐标,单位px)
y: "bottom",
// 工具箱背景颜色,默认透明
backgroundColor: "rgba(218,112,214,0.6)",
// 工具箱边框颜色
borderColor: "#0066FF",
// 工具箱边框线宽,单位px,默认为0(无边框)
borderWidth: 1,
// 工具箱内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同css
padding: [15,15,15,15],
// 各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,纵向布局时为纵向间隔
itemGap: 20,
// 工具箱icon大小,单位(px)
itemSize: 20,
// 工具箱icon颜色序列,循环使用,同时支持在具体feature内指定color
color:["#1e90ff","#22bb22","#4b0082","#d2691e"],
// 禁用颜色定义
disableColor:"#fff",
// 生效颜色定义
effectiveColor:"red",
// 是否显示工具箱文字提示,默认启用
showTitle:true,
// 工具箱提示文字样式
textStyle:{
// 颜色
color: "#FF7F50",
// 水平对齐方式,可选为:"left" | "right" | "center"
align: "left",
// 垂直对齐方式,可选为:"top" | "bottom" | "middle"
baseline: "bottom",
// 字体系列
fontFamily: "Arial, 宋体, sans-serif",
// 字号 ,单位px
fontSize: 20,
// 样式,可选为:"normal" | "italic" | "oblique"
fontStyle: "italic",
// 粗细,可选为:"normal" | "bold" | "bolder" | "lighter" | 100 | 200 |... | 900
fontWeight: "normal"
},
// 启用功能,目前支持feature见下,工具箱自定义功能回调处理
feature : {
// 辅助线标志,分别是启用,删除上一条,删除全部,可设置更多属性
mark : {
show : true,
title : {
mark : "辅助线开关",
markUndo : "删除辅助线",
markClear : "清空辅助线"
},
lineStyle : {
width : 2,
color : "#1e90ff",
type : "dashed"
}
},
// 框选区域缩放,自动与存在的dataZoom控件同步,上图icon左数4/5,分别是启用,缩放后退
dataZoom : {
show : true,
title : {
dataZoom : "区域缩放",
dataZoomReset : "区域缩放后退"
}
},
// 数据视图,上图icon左数6,打开数据视图,可设置更多属性
dataView : {
show : true,
title : "数据视图",
readOnly: false,
lang: ["数据视图", "关闭", "刷新"]
},
// 动态类型切换,支持直角系下的折线图、柱状图、堆积、平铺转换,上图icon左数6~14,分别是切换为堆积,切换为平铺,切换折线图,切换柱形图,切换为力导向布局图,切换为和弦图,切换为饼图,切换为漏斗图
magicType: {
show : true,
title : {
line : "折线图切换",
bar : "柱形图切换",
stack : "堆积",
tiled : "平铺",
force: "力导向布局图切换",
chord: "和弦图切换",
pie: "饼图切换",
funnel: "漏斗图切换"
},
option: {
// line: {...},
// bar: {...},
// stack: {...},
// tiled: {...},
// force: {...},
// chord: {...},
// pie: {...},
// funnel: {...}
},
type : []
},
// 还原,复位原始图表
restore : {
show : true,
title : "还原"
},
// 保存图片(IE8-不支持),可设置更多属性
saveAsImage : {
show : true,
title : "保存为图片",
type : "png",
lang : ["点击保存"]
}
}
},
// 缩放漫游组件,仅对地图有效
roamController: {
// 显示策略,可选为:true(显示) | false(隐藏)
show: true,
// 水平安放位置,默认为左侧,可选为:"center" | "left" | "right" | {number}(x坐标,单位px)
x: "right",
// 垂直安放位置,默认为全图顶端,可选为:"top" | "bottom" | "center" | {number}(y坐标,单位px)
y: "top",
// 指定宽度,决定4向漫游圆盘大小,可指定 {number}(宽度,单位px)
width: 120,
// 指定高度,缩放控制键默认会在指定高度的最下方最大化显示,可指定 {number}(高度,单位px)
height:200,
// 缩放漫游组件背景颜色,默认透明
backgroundColor:"rgba(0,0,0,0.1)",
// 缩放漫游组件边框颜色
borderColor: "#1e90ff",
// 缩放漫游组件边框线宽,单位px,默认为0(无边框)
borderWidth: 1,
// 缩放漫游组件内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距,同css
padding: [15,15,15,15],
// 漫游组件文字填充颜色
fillerColor:"#000",
// 控制手柄主体颜色
handleColor:"#e3655a",
// 4向漫游移动步伐,单位px
step:10,
// 必须,指定漫游组件可控地图类型
mapTypeControl: {
"china": true
}
},
series : [
{
// 图表类型,必要参数!如为空或不支持类型,则该系列数据不被显示。可选为:
// "line"(折线图) | "bar"(柱状图) | "scatter"(散点图) | "k"(K线图)
// "pie"(饼图) | "radar"(雷达图) | "chord"(和弦图) | "force"(力导向布局图) | "map"(地图)
type: "map",
// 系列名称
name: "iphone3",
// 地图类型,支持world,china及全国34个省市自治区
mapType: "china",
// 是否开启滚轮缩放和拖拽漫游,默认为false(关闭),其他有效输入为true(开启),"scale"(仅开启滚轮缩放),"move"(仅开启拖拽漫游)
roam: false,
// 图形样式
itemStyle:{
// 默认状态下地图的文字
normal:{label:{show:true}},
// 鼠标放到地图上面显示文字
emphasis:{label:{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)}
]
},
{
name: "iphone4",
type: "map",
mapType: "china",
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{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: "iphone5",
type: "map",
mapType: "china",
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{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)}
]
}
]
};
myChart.setOption(option);
});
});
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Echarts入门(零基础小白教程)
- 下一篇: ECharts使用心得总结
