当前位置:   article > 正文

ECharts实现中国地图数据可视化_echarts 中国地图

echarts 中国地图

项目中数据可视化已经太常见了,echarts是一款使用率非常高的插件工具,很多大平台都是使用echarts;一般都有折线图、柱形图、饼形图,还有常见的地图,今天就地图来说一下——中国地图。

1、首先官网上下载一个echart.js或echart.min.js,如下根据自己的需要下载对应的文件。网址:https://echarts.baidu.com/

2、下载中国地图插件china.js,官网上提示如下:

不过没关系,可点击如下链接下载: 

链接: 百度网盘 请输入提取码      提取码: cxmv 


注意:有一个小bug,想使用china.js必须使用echarts.min.js;  引入echarts.common.min.js是无效的


3、随机数来测试数据:

  1. //中国地图
  2. function randomData() {
  3. return Math.round(Math.random()*500);
  4. }
  1. top:"100",//组件距离容器的距离
  2. data:[
  3. {name: '北京',value: '100' },{name: '天津',value: randomData() },
  4. {name: '上海',value: randomData() },{name: '重庆',value: randomData() },
  5. {name: '河北',value: randomData() },{name: '河南',value: randomData() },
  6. {name: '云南',value: randomData() },{name: '辽宁',value: randomData() },
  7. {name: '黑龙江',value: randomData() },{name: '湖南',value: randomData() },
  8. {name: '安徽',value: randomData() },{name: '山东',value: randomData() },
  9. {name: '新疆',value: randomData() },{name: '江苏',value: randomData() },
  10. {name: '浙江',value: randomData() },{name: '江西',value: randomData() },
  11. {name: '湖北',value: randomData() },{name: '广西',value: randomData() },
  12. {name: '甘肃',value: randomData() },{name: '山西',value: randomData() },
  13. {name: '内蒙古',value: randomData() },{name: '陕西',value: randomData() },
  14. {name: '吉林',value: randomData() },{name: '福建',value: randomData() },
  15. {name: '贵州',value: randomData() },{name: '广东',value: randomData() },
  16. {name: '青海',value: randomData() },{name: '西藏',value: randomData() },
  17. {name: '四川',value: randomData() },{name: '宁夏',value: randomData() },
  18. {name: '海南',value: randomData() },{name: '台湾',value: randomData() },
  19. {name: '香港',value: randomData() },{name: '澳门',value: randomData() }
  20. ]

4、与折线图等一样,实例化option,配置属性,data置入数据,整体代码如下:

  1. //中国地图
  2. function randomData() {
  3. return Math.round(Math.random()*500);
  4. }
  5. optionChinaMap = {
  6. tooltip : {
  7. trigger: 'item'
  8. },
  9. legend: {
  10. orient: 'horizontal',//图例的排列方向
  11. textStyle: {color:'#fff'},
  12. x:'left',//图例的位置
  13. y:'20',
  14. data:['全国数据']
  15. },
  16. visualMap: {//颜色的设置 dataRange
  17. textStyle: {color:'#fff'},
  18. x: 'left',
  19. y: 'bottom',
  20. splitList: [
  21. {start: 1500},{start: 900, end: 1500},
  22. {start: 310, end: 1000},{start: 200, end: 300},
  23. {start: 50, end: 200},{start: 0, end: 50},
  24. ],
  25. // text:['高','低'],// 文本,默认为数值文本
  26. // color: ['#65A2D9', '#E09107', '#A3E00B']
  27. color: ['#5475f5', '#9feaa5', '#3FA7FF','#66E0E3', '#FFDC5E', '#9fb5ea']
  28. },
  29. // roamController: {//控制地图的上下左右放大缩小
  30. // show: true,
  31. // x: 'right',
  32. // mapTypeControl: {
  33. // 'china': true
  34. // }
  35. // },
  36. series : [
  37. {
  38. name: '全国数据',
  39. type: 'map',
  40. mapType: 'china',
  41. zoom: 1.1,
  42. roam: false,//是否开启鼠标缩放和平移漫游
  43. itemStyle:{//地图区域的多边形 图形样式
  44. normal:{//是图形在默认状态下的样式
  45. label:{
  46. show: true,
  47. textStyle: {color: "rgb(249, 249, 249)"}
  48. }
  49. },
  50. emphasis:{//是图形在高亮状态下的样式,比如在鼠标悬浮或者图例联动高亮时
  51. label:{show:true},
  52. }
  53. },
  54. top:"100",//组件距离容器的距离
  55. data:[
  56. {name: '北京',value: '100' },{name: '天津',value: randomData() },
  57. {name: '上海',value: randomData() },{name: '重庆',value: randomData() },
  58. {name: '河北',value: randomData() },{name: '河南',value: randomData() },
  59. {name: '云南',value: randomData() },{name: '辽宁',value: randomData() },
  60. {name: '黑龙江',value: randomData() },{name: '湖南',value: randomData() },
  61. {name: '安徽',value: randomData() },{name: '山东',value: randomData() },
  62. {name: '新疆',value: randomData() },{name: '江苏',value: randomData() },
  63. {name: '浙江',value: randomData() },{name: '江西',value: randomData() },
  64. {name: '湖北',value: randomData() },{name: '广西',value: randomData() },
  65. {name: '甘肃',value: randomData() },{name: '山西',value: randomData() },
  66. {name: '内蒙古',value: randomData() },{name: '陕西',value: randomData() },
  67. {name: '吉林',value: randomData() },{name: '福建',value: randomData() },
  68. {name: '贵州',value: randomData() },{name: '广东',value: randomData() },
  69. {name: '青海',value: randomData() },{name: '西藏',value: randomData() },
  70. {name: '四川',value: randomData() },{name: '宁夏',value: randomData() },
  71. {name: '海南',value: randomData() },{name: '台湾',value: randomData() },
  72. {name: '香港',value: randomData() },{name: '澳门',value: randomData() }
  73. ]
  74. }
  75. ]
  76. };
  77. chinaMapChart.setOption(optionChinaMap, true);

具体属性不知道的可以根据需求查看官方文档或实例

文档:https://www.echartsjs.com/option.html#grid.id

实例:https://www.echartsjs.com/examples/

5、做项目的时候发现地图不能根据视口自适应,其他的图形也不行,所以可以写一个监听事件如下:

  1. window.addEventListener("resize", function() {
  2. chinaMapChart.resize();
  3. });

6、效果图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/975669
推荐阅读
相关标签
  

闽ICP备14008679号