echarts 生成 迁徙图_Echarts世界级迁徙图

@media screen and (min-width: 767px) {

#main{height:800px;padding: 0 30px 0 30px;}

}

@media screen and (max-width: 767px) {

#main{height:200px;padding: 0px;}

}

// 基于准备好的dom,初始化echarts实例

var myChart = echarts.init(document.getElementById('main'));

myChart.setOption({

visualMap: {

min: 0,

max: 100,

text:['业务量(件)/年'],

realtime: false,

calculable: false,

color: ['orangered','yellow','lightskyblue'],

show:false,

padding:0,

},

series: [{

// 图标类型

type: 'map',

}]

});

// 指定图表的配置项和数据

var geoCoordMap = {

'阿富汗':[67.709953,33.93911],

'安哥拉':[17.873887,-11.202692],

'阿尔巴尼亚':[20.168331,41.153332],

'阿联酋':[53.847818,23.424076],

'阿根廷':[-63.61667199999999,-38.416097],

'亚美尼亚':[45.038189,40.069099],

'法属南半球和南极领地':[69.348557,-49.280366],

'澳大利亚':[133.775136,-25.274398],

'奥地利':[14.550072,47.516231],

'阿塞拜疆':[47.576927,40.143105],

'布隆迪':[29.918886,-3.373056],

'比利时':[4.469936,50.503887],

'贝宁':[2.315834,9.30769],

'布基纳法索':[-1.561593,12.238333],

'孟加拉国':[90.356331,23.684994],

'保加利亚':[25.48583,42.733883],

'巴哈马':[-77.39627999999999,25.03428],

'波斯尼亚和黑塞哥维那':[17.679076,43.915886],

'白俄罗斯':[27.953389,53.709807],

'伯利兹':[-88.49765,17.189877],

'百慕大':[-64.7505,32.3078],

'玻利维亚':[-63.58865299999999,-16.290154],

'巴西':[-51.92528,-14.235004],

'文莱':[114.727669,4.535277],

'不丹':[90.433601,27.514162],

'博茨瓦纳':[24.684866,-22.328474],

'中非共和国':[20.939444,6.611110999999999],

'加拿大':[-106.346771,56.130366],

'瑞士':[8.227511999999999,46.818188],

'智利':[-71.542969,-35.675147],

'中国':[104.195397,35.86166],

'象牙海岸':[-5.547079999999999,7.539988999999999],

'喀麦隆':[12.354722,7.369721999999999],

'刚果民主共和国':[21.758664,-4.038333],

'刚果共和国':[15.827659,-0.228021],

'哥伦比亚':[-74.297333,4.570868],

'哥斯达黎加':[-83.753428,9.748916999999999],

'古巴':[-77.781167,21.521757],

'北塞浦路斯':[33.429859,35.126413],

'塞浦路斯':[33.429859,35.126413],

'捷克共和国':[15.472962,49.81749199999999],

'德国':[10.451526,51.165691],

'吉布提':[42.590275,11.825138],

'丹麦':[9.501785,56.26392],

'多明尼加共和国':[-70.162651,18.735693],

'阿尔及利亚':[1.659626,28.033886],

'厄瓜多尔':[-78.18340599999999,-1.831239],

'埃及':[30.802498,26.820553],

'厄立特里亚':[39.782334,15.179384],

'西班牙':[-3.74922,40.46366700000001],

'爱沙尼亚':[25.013607,58.595272],

'埃塞俄比亚':[40.489673,9.145000000000001],

'芬兰':[25.748151,61.92410999999999],

'斐':[178.065032,-17.713371],

'福克兰群岛':[-59.523613,-51.796253],

'法国':[2.213749,46.227638],

'加蓬':[11.609444,-0.803689],

'英国':[-3.435973,55.378051],

'格鲁吉亚':[-82.9000751,32.1656221],

'加纳':[-1.023194,7.946527],

'几内亚':[-9.696645,9.945587],

'冈比亚':[-15.310139,13.443182],

'几内亚比绍':[-15.180413,11.803749],

'赤道几内亚':[10.267895,1.650801],

'希腊':[21.824312,39.074208],

'格陵兰':[-42.604303,71.706936],

'危地马拉':[-90.23075899999999,15.783471],

'法属圭亚那':[-53.125782,3.933889],

'圭亚那':[-58.93018,4.860416],

'洪都拉斯':[-86.241905,15.199999],

'克罗地亚':[15.2,45.1],

'海地':[-72.285215,18.971187],

'匈牙利':[19.503304,47.162494],

'印尼':[113.921327,-0.789275],

'印度':[78.96288,20.593684],

'爱尔兰':[-8.24389,53.41291],

'伊朗':[53.688046,32.427908],

'伊拉克':[43.679291,33.223191],

'冰岛':[-19.020835,64.963051],

'以色列':[34.851612,31.046051],

'意大利':[12.56738,41.87194],

'牙买加':[-77.297508,18.109581],

'约旦':[36.238414,30.585164],

'日本':[138.252924,36.204824],

'哈萨克斯坦':[66.923684,48.019573],

'肯尼亚':[37.906193,-0.023559],

'吉尔吉斯斯坦':[74.766098,41.20438],

'柬埔寨':[104.990963,12.565679],

'韩国':[127.766922,35.907757],

'科索沃':[20.902977,42.6026359],

'科威特':[47.481766,29.31166],

'老挝':[102.495496,19.85627],

'黎巴嫩':[35.862285,33.854721],

'利比里亚':[-9.429499000000002,6.428055],

'利比亚':[17.228331,26.3351],

'斯里兰卡':[80.77179699999999,7.873053999999999],

'莱索托':[28.233608,-29.609988],

'立陶宛':[23.881275,55.169438],

'卢森堡':[6.129582999999999,49.815273],

'拉脱维亚':[24.603189,56.879635],

'摩洛哥':[-7.092619999999999,31.791702],

'摩尔多瓦':[28.369885,47.411631],

'马达加斯加':[46.869107,-18.766947],

'墨西哥':[-102.552784,23.634501],

'马其顿':[21.745275,41.608635],

'马里':[-3.996166,17.570692],

'缅甸':[95.956223,21.913965],

'黑山':[19.37439,42.708678],

'蒙古':[103.846656,46.862496],

'莫桑比克':[35.529562,-18.665695],

'毛里塔尼亚':[-10.940835,21.00789],

'马拉维':[34.301525,-13.254308],

'马来西亚':[101.975766,4.210484],

'纳米比亚':[18.49041,-22.95764],

'新喀里多尼亚':[165.618042,-20.904305],

'尼日尔':[8.081666,17.607789],

'尼日利亚':[8.675277,9.081999],

'尼加拉瓜':[-85.207229,12.865416],

'荷兰':[5.291265999999999,52.132633],

'挪威':[8.468945999999999,60.47202399999999],

'尼泊尔':[84.12400799999999,28.394857],

'新西兰':[174.885971,-40.900557],

'阿曼':[55.923255,21.512583],

'巴基斯坦':[69.34511599999999,30.375321],

'巴拿马':[-80.782127,8.537981],

'秘鲁':[-75.015152,-9.189967],

'菲律宾':[121.774017,12.879721],

'巴布亚新几内亚':[143.95555,-6.314992999999999],

'波兰':[19.145136,51.919438],

'波多黎各':[-66.590149,18.220833],

'北朝鲜':[127.510093,40.339852],

'葡萄牙':[-8.224454,39.39987199999999],

'巴拉圭':[-58.443832,-23.442503],

'卡塔尔':[51.183884,25.354826],

'罗马尼亚':[24.96676,45.943161],

'俄罗斯':[105.318756,61.52401],

'卢旺达':[29.873888,-1.940278],

'西撒哈拉':[-12.885834,24.215527],

'沙特阿拉伯':[45.079162,23.885942],

'苏丹':[30.217636,12.862807],

'南苏丹':[31.3069788,6.876991899999999],

'塞内加尔':[-14.452362,14.497401],

'所罗门群岛':[160.156194,-9.64571],

'塞拉利昂':[-11.779889,8.460555],

'萨尔瓦多':[-88.89653,13.794185],

'索马里兰':[46.8252838,9.411743399999999],

'索马里':[46.199616,5.152149],

'塞尔维亚共和国':[21.005859,44.016521],

'苏里南':[-56.027783,3.919305],

'斯洛伐克':[19.699024,48.669026],

'斯洛文尼亚':[14.995463,46.151241],

'瑞典':[18.643501,60.12816100000001],

'斯威士兰':[31.465866,-26.522503],

'叙利亚':[38.996815,34.80207499999999],

'乍得':[18.732207,15.454166],

'多哥':[0.824782,8.619543],

'泰国':[100.992541,15.870032],

'塔吉克斯坦':[71.276093,38.861034],

'土库曼斯坦':[59.556278,38.969719],

'东帝汶':[125.727539,-8.874217],

'特里尼达和多巴哥':[-61.222503,10.691803],

'突尼斯':[9.537499,33.886917],

'土耳其':[35.243322,38.963745],

'坦桑尼亚联合共和国':[34.888822,-6.369028],

'乌干达':[32.290275,1.373333],

'乌克兰':[31.16558,48.379433],

'乌拉圭':[-55.765835,-32.522779],

'美国':[-95.712891,37.09024],

'乌兹别克斯坦':[64.585262,41.377491],

'委内瑞拉':[-66.58973,6.42375],

'越南':[108.277199,14.058324],

'瓦努阿图':[166.959158,-15.376706],

'西岸':[35.3027226,31.9465703],

'也门':[48.516388,15.552727],

'南非':[22.937506,-30.559482],

'赞比亚':[27.849332,-13.133897],

'津巴布韦':[29.154857,-19.015438]};

var ZGData = [

[{name:'中国'}, {name:'美国',value:95}],

[{name:'中国'}, {name:'也门',value:90}],

[{name:'中国'}, {name:'乌干达',value:80}],

[{name:'中国'}, {name:'泰国',value:70}],

];

// 小飞机图

var planePath = 'path://M1705.06,1318.313v-89.254l-319.9-221.799l0.073-208.063c0.521-84.662-26.629-121.796-63.961-121.491c-37.332-0.305-64.482,36.829-63.961,121.491l0.073,208.063l-319.9,221.799v89.254l330.343-157.288l12.238,241.308l-134.449,92.931l0.531,42.034l175.125-42.917l175.125,42.917l0.531-42.034l-134.449-92.931l12.238-241.308L1705.06,1318.313z';

var convertData = function (data) {

var res = [];

for (var i = 0; i < data.length; i++) {

var dataItem = data[i];

var fromCoord = geoCoordMap[dataItem[0].name];

var toCoord = geoCoordMap[dataItem[1].name];

if (fromCoord && toCoord) {

res.push({

fromName: dataItem[0].name,

toName: dataItem[1].name,

coords: [fromCoord, toCoord]

});

}

}

return res;

};

// 颜色组 #a6c84c:浅绿;#ffa022:橙色;#46bee9:蓝色

var color = ['#a6c84c', '#ffa022', '#46bee9'];

var series = [];

[['中国',ZGData]].forEach(function (item, i) {

series.push({

name: item[0],

type: 'lines',

zlevel: 1,

effect: {

show: true,

period: 6,

trailLength: 0.7,

color: '#fff',

symbolSize: 3

},

lineStyle: {

normal: {

color: color[i],

width: 1,

curveness: 0.2

}

},

data: convertData(item[1])

},

{

// 飞机/线条

name: item[0],

type: 'lines',

zlevel: 2,

effect: {

show: true,

period: 6,

trailLength: 0,

symbol: planePath,

symbolSize: 15

},

lineStyle: {

normal: {

// 飞机及线条颜色

color: 'red',

// 线条粗细

width: 5,

// 线条透明度

opacity: 0.4,

curveness: 0.2

}

},

data: convertData(item[1])

},

{

// 标注点

name: item[0],

type: 'effectScatter',

coordinateSystem: 'geo',

zlevel: 2,

// rippleEffect: {

// brushType: 'stroke'

// },

// label: {

// normal: {

// show: true,

// position: 'right',

// formatter: '{b}'

// }

// },

symbolSize: function (val) {

return val[2] / 8;

},

// itemStyle: {

// normal: {

// color: color[i]

// }

// },

data: item[1].map(function (dataItem) {

return {

name: dataItem[1].name,

value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value])

};

})

});

});

option = {

// 整个图标背景颜色

backgroundColor: '#aacef5',

title : {

// 图表标题

text: '业务范围',

// 副标题

subtext: '',

// 位置

left: 'center',

// 字体颜色

textStyle : {

color: '#fff'

}

},

// 提示

tooltip : {

trigger: 'item',

// 提示内容 出发地:{a};目的地:{b};坐标及数值:{c}

formatter: "{b}"

},

// 右下角按钮不同区域

// legend: {

// orient: 'vertical',

// top: 'bottom',

// left: 'right',

// data:['中国 Top10'],

// textStyle: {

// color: '#fff'

// },

// selectedMode: 'single'

// },

geo: {

// 地图范围 world or china

map: 'world',

label: {

emphasis: {

show: false

}

},

// 滚轮缩放

roam: false,

itemStyle: {

normal: {

// 地图区块颜色

areaColor: '#ffde7fa1',

// 地图区块描边色

borderColor: '#404a59'

},

emphasis: {

// 鼠标触碰色

areaColor: 'yellow'

}

}

},

series: series

};

// 使用刚指定的配置项和数据显示图表。

myChart.setOption(option);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!我是 ChitGPT,很高兴回答您的问题。 要使用百度 Echarts 生成迁徙,您可以按照以下步骤进行: 1. 准备数据:迁徙需要有起点、终点和迁徙量三个维度的数据,可以使用 CSV 或 JSON 格式存储数据。 2. 引入 Echarts 库:在 HTML 页面中引入 Echarts 库,可以通过引入 CDN 或下载本地文件的方式引入。 3. 创建容器:在 HTML 页面中创建一个 div 容器,用于显示迁徙。 4. 配置选项:使用 Echarts 提供的 API 配置迁徙的样式、数据等选项。 以下是一个示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>人口迁徙</title> <!-- 引入 Echarts 库 --> <script src="https://cdn.jsdelivr.net/npm/echarts@4.7.0/dist/echarts.min.js"></script> </head> <body> <!-- 创建容器 --> <div id="myChart" style="width: 600px;height:400px;"></div> <script> // 基于准备好的容器,初始化 Echarts 实例 var myChart = echarts.init(document.getElementById('myChart')); // 配置选项 var option = { title: { text: '人口迁徙' }, tooltip: {}, visualMap: { min: 0, max: 1000, inRange: { color: ['#50a3ba', '#eac736', '#d94e5d'] }, text: ['High', 'Low'], // 文本,默认为数值文本 calculable: true }, series: [{ name: '人口迁徙', type: 'lines', coordinateSystem: 'geo', data: [ { fromName: '北京', toName: '上海', value: 500 }, { fromName: '上海', toName: '广州', value: 300 }, { fromName: '广州', toName: '北京', value: 200 } ], // 设置线条样式 lineStyle: { color: 'rgb(200, 35, 45)', opacity: 0.6, width: 2 } }] }; // 使用刚指定的配置项和数据显示表。 myChart.setOption(option); </script> </body> </html> ``` 在以上代码中,我们使用了 Echarts 提供的地组件中的线条类型来绘制迁徙,通过设置 `series` 中的 `data` 属性来添加数据。 希望以上内容能够对您有所帮助。如果您有其他问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值