可视化 | echarts中国地图散点图

改编自echarts添加地图散点

📚改编点

  • roam: false:不允许放缩拖动

  • 地图颜色修改

     geo: {show: true,top: '15%',map: name,label: {normal: {show: false},emphasis: {show: true,color: "#fff",}},roam: false,itemStyle: {normal: {areaColor: '#ebeee8',borderColor: '#b3bda9',},emphasis: {areaColor: '#4068b2',}}
    },
    
  • 地图位置样式修改,使地图在水平方向上居中显示

    #china-map {width: 1200px;height: 1000px;position: absolute;left: calc(50% - 600px);top:0px;
    }
    
  • 散点大小梯度设置

    symbolSize: function (val) { // 设置散点大小let value = val[2];if (value < 10) {return 10;} else if (value < 40) {return 12;} else if (value < 70) {return 14;} else if (value < 100) {return 16;} else {return 18;}
    },
    
  • 散点颜色梯度设置

    color: function (res) {let value = res.value[2];// 根据数值大小调整散点的颜色if (value < 10) {return "#f3807b";} else if (value < 40) {return "#e6534c";} else if (value < 70) {return "#c23c31";} else if (value < 100) {return "c32b28";} else {return "#a81410";}
    },
    

📚final

在这里插入图片描述

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>中国热门研究地区分布</title><style>body {margin: 0 auto;}#china-map {width: 1200px;height: 1000px;position: absolute;left: calc(50% - 600px);top:0px;}</style>
</head><body><div id="china-map"></div>
</body><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.7.0/echarts.min.js"></script>
<script>let publicUrl = 'https://geo.datav.aliyun.com/areas_v2/bound/';async function initChart() {let chart = echarts.init(document.getElementById('china-map'));let alladcode = await getGeoJson('all.json')let chinaGeoJson = await getGeoJson('100000_full.json')initEcharts(chinaGeoJson, '中国热门研究地区分布', chart, alladcode)}initChart();// 每个地区的数据let mapData = [{name: "北京市",value: 279},{name: "上海市",value: 41},{name: "天津省",value: 11},{name: "重庆市",value: 7},{name: "河南省",value: 2},{name: "云南省",value: 2},{name: "辽宁省",value: 12},{name: "黑龙江省",value: 17},{name: "湖南省",value: 21},{name: "安徽省",value: 31},{name: "山东省",value: 50},{name: "江苏省",value: 45},{name: "浙江省",value: 58},{name: "江西省",value: 4},{name: "湖北省",value: 48},{name: "甘肃省",value: 1},{name: "山西省",value: 3},{name: "陕西省",value: 46},{name: "吉林省",value: 4},{name: "福建省",value: 9},{name: "广东省",value: 82},{name: "四川省",value: 38},{name: "台湾省",value: 2},{name: "香港特别行政区",value: 188},{name: "澳门特别行政区",value: 10},]//echarts绘图function initEcharts(geoJson, name, chart, alladcode) {//获取当前显示地图下方地市的坐标点数据; 用于气泡显示let geoCoordMap = {};// 获取地区详细信息let mapFeatures = geoJson.features;// 遍历获取每个地区的经纬度mapFeatures.forEach(function (v, i) {// 获取当前地区名let name = v.properties.name;if (name) {// 获取当前地区的经纬度geoCoordMap[name] = v.properties.center;}});//将data数据进入方法,取需要的参数; 用于气泡显示let convertData = function (data) {var res = [];data.forEach(item => {// 获取当前省份的经纬度坐标let geoCoord = geoCoordMap[item.name];if (geoCoord) {res.push({// name 表示地区名称name: item.name,// value数据格式为:[113.665412, 34.757975, '200']value: geoCoord.concat(item.value)});}})return res;};echarts.registerMap(name, geoJson);var option = {title: {text: name,left: 'center',top: '10%',},//鼠标经过展示数据方法tooltip: {triggerOn: "mousemove",formatter: function (params) {if (isNaN(params.value)) {params.value = 0}if (params.seriesName === '散点') {params.value = params.data.value[2]}var html = '<span>' + params.name + ':</span><br/>'html += '<span>值:' + params.value + '</span><br/>'return html},backgroundColor: 'rgba(29, 38, 71)',// 额外附加的阴影extraCssText: 'box-shadow:0 0 4px rgba(11, 19, 43,0.8)',},geo: {show: true,top: '15%',map: name,label: {normal: {show: false},emphasis: {show: true,color: "#fff",}},roam: false,itemStyle: {normal: {areaColor: '#ebeee8',borderColor: '#b3bda9',},emphasis: {areaColor: '#4068b2',}}},//进行气泡标点series: [{type: 'map',map: mapData,geoIndex: 0,aspectScale: 0.75, //长宽比animation: true,data: mapData},{name: '散点', // 自定义名称type: 'effectScatter', // scatter  effectScatter  coordinateSystem: 'geo', // 设置坐标系类型data: convertData(mapData), // 设置散点位置和数据symbolSize: function (val) { // 设置散点大小let value = val[2];if (value < 10) {return 10;} else if (value < 40) {return 12;} else if (value < 70) {return 14;} else if (value < 100) {return 16;} else {return 18;}},showEffectOn: 'render',rippleEffect: {brushType: 'stroke'},hoverAnimation: true, // 是否显示鼠标悬浮动画label: {// 静态显示时的样式normal: {show: false, formatter: function (data) { // 显示模板return data.value[2]},position: 'bottom', // 显示位置},// // 鼠标悬浮上去的样式// emphasis: {//     color: "#108B96",// },},itemStyle: {normal: {color: function (res) {let value = res.value[2];// 根据数值大小调整散点的颜色if (value < 10) {return "#f3807b";} else if (value < 40) {return "#e6534c";} else if (value < 70) {return "#c23c31";} else if (value < 100) {return "c32b28";} else {return "#a81410";}},},// // 鼠标悬浮上去的样式// emphasis: {//     color: "#108B96",// },},zlevel: 3}]};chart.setOption(option);// 解绑click事件chart.off("click");//给地图添加监听事件chart.on('click', async params => {// 获取当前点击的地图codelet clickRegion = alladcode.find(areaJson => areaJson.name === params.name);// 获取要获取地图的json名称let regionJsonName = clickRegion.adcode + '_full.json'// 获取点击的区域名称let cityName = params.name// 判断当前点击的地图等级,如果是区级,则再次点击时重新回到全国的数据if (clickRegion.level === 'district') {regionJsonName = '100000_full.json'cityName = '中国热门研究地区分布'}// 根据地图code获取getGeoJson(regionJsonName).then((result) => {initEcharts(result, cityName, chart, alladcode)})})}//获取地图json数据async function getGeoJson(jsonName) {return await $.get(publicUrl + jsonName)}
</script></html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/169334.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习 opencv python 实现中国交通标志识别 计算机竞赛_1

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 &#x1f525; 优质…

2023 ChinaJoy后,Flat Ads成为游戏、社交出海的新选择

今年ChinaJoy 展会&#xff0c;共吸引了来自世界各地的 500 多家企业参展&#xff0c;预计吸引超过33万人次参观。ChinaJoy年年有&#xff0c;那今年对于行业来说有什么新变化呢&#xff1f; 01 出海热潮不减&#xff0c;新增客户明显提升 据不完全统计&#xff0c;展会期间前…

Spring源码系列-框架中的设计模式

简单工厂 实现方式&#xff1a; BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现&#xff0c;根据传入一个唯一的标识来获得Bean对象&#xff0c;但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。 实质&#xff1a; 由一个工厂…

No179.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

《詩經别解》——國風·周南·雎鳩​​​​​​​

一、关于古文的一个认识 目前可以阅读的古文经典&#xff0c;大多是经历了几千年的传承。期间的武力战争、文化纷争、宗教侵袭、官僚介入及文人的私人恩怨与流派桎梏&#xff0c;印刷与制作技术&#xff0c;导致这些古文全部都已经面目全非。简单地说&#xff0c;你读到的都是…

4种最常用的LLM应用文本分块策略

在构建 LLM 应用程序时&#xff0c;分块&#xff08;Chunking&#xff09;是将大块文本分解成更小的片段的过程。 这是一项重要的技术&#xff0c;一旦我们使用LLM嵌入内容&#xff0c;它有助于优化我们从矢量数据库返回的内容的相关性。 在这篇博文中&#xff0c;我们将探讨它…

【K8s集群离线安装-kubeadm】

1、kubeadm概述 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令快速完成一个kubernetes集群的部署。 2、环境准备 2.1 软件环境 软件版本操作系统CentOS 7Docker19.03.13K8s1.23 2.2 服务器 最小硬件配置&#xff1a;2核CPU、2G内存…

【Proteus仿真】【51单片机】多路温度控制系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用按键、LED、蜂鸣器、LCD1602、DS18B20温度传感器、HC05蓝牙模块等。 主要功能&#xff1a; 系统运行后&#xff0c;默认LCD1602显示前4路采集的温…

同城跑腿服务预约小程序的作用如何

无论是互联网服务化加快还是前几年疫情冲击&#xff0c;在同城生活服务场景中出现了很多商机&#xff0c;如外卖跑腿、校园跑腿、代买代送等&#xff0c;无论公司还是个人都借势不断提升自己品牌的影响力&#xff0c;并且依赖朋友圈不断提升生意营收。 同城跑腿品牌不少&#…

yolo系列报错(持续补充ing)

文章目录 export GIT_PYTHON_REFRESHquiet解决 没有pt权重文件解决 python文件路径报错解决 读取文件列名报错解决 导入不同文件夹出错解决 megengine没有安装解决然后你发现它竟然还没有用 export GIT_PYTHON_REFRESHquiet 设置环境变量 GIT_PYTHON_REFRESH &#xff0c;这个…

【AI】自回归 (AR) 模型使预测和深度学习变得简单

自回归 (AR) 模型是统计和时间序列模型&#xff0c;用于根据数据点的先前值进行分析和预测。这些模型广泛应用于各个领域&#xff0c;包括经济、金融、信号处理和自然语言处理。 自回归模型假设给定时间变量的值与其过去的值线性相关&#xff0c;这使得它们可用于建模和预测时…

详解数据仓库之拉链表(原理、设计以及在Hive中的实现)

最近发现一本好书&#xff0c;读完感觉讲的非常好&#xff0c;首先安利给大家&#xff0c;国内第一本系统讲解数据血缘的书&#xff01;点赞&#xff01;近几天也会安排朋友圈点赞赠书活动(ง•̀_•́)ง 0x00 前言 本文将会谈一谈在数据仓库中拉链表相关的内容&#xff0c;包…