Vue中使用ECharts实现热力图的详细教程

news2024/11/25 0:30:46

在数据可视化领域,热力图是一种非常直观的表现形式,它通过颜色深浅来展示数据分布情况。在Vue项目中,我们可以使用ECharts这一强大的图表库来实现热力图。下面我将详细介绍如何在Vue中使用ECharts实现热力图。效果如下图:

一、准备工作

1、安装ECharts

在项目根目录下,运行以下命令安装ECharts:

npm install echarts --save

2、下载所需地区的JSON文件 并放在静态资源文件夹下

下载geoJson的途径网上一抓一大把,也可以参照我之前的文章https://blog.csdn.net/Jiaberrr/article/details/141939259

 

二、实现热力图

1、引入ECharts和geoJSON

在Vue组件中,首先需要引入ECharts和地图JSON。在<script>标签中添加以下代码:

import * as echarts from 'echarts';
import geoJson from './static/json/mapJson.json'

2、创建热力图容器

<template>标签中,添加一个用于展示热力图的div容器:

<div ref="heatmap" style="width: 600px; height: 400px;"></div>

3、初始化ECharts实例

mounted钩子函数中,初始化ECharts实例并设置热力图配置项:

mounted() {
 echarts.registerMap('GD', geoJson);
  const myChart = echarts.init(this.$refs.heatmap);
  const option = {
    // 热力图配置项
  };
  myChart.setOption(option);
}

4、配置热力图

以下是效果图中的热力图的基本配置项,您可以根据实际需求进行调整:

   let data = [
        ['116.424697', '39.927967', 1334],// '东城'
        ['116.358141', '39.913919', 9334],// '西城'
        ['116.765487', '40.136573', 834],// '朝阳'
        ['116.290679', '39.857184', 2334],// '丰台'
        ['116.17672', '39.949198', 6734],// '石景山'
        ['116.177807', '40.062966', 1234],// '海淀'
        ['115.905234', '40.010063', 2634],// '门头沟'
        ['115.941902', '39.708825', 1334],// '房山'
        ['116.747351', '39.814339', 1178],// '通州'
        ['116.737316', '40.137897', 634],// '顺义'
        ['116.226118', '40.225311', 9334],// '昌平'
        ['116.402095', '39.655493', 2334],// '大兴'
        ['116.621138', '40.432762', 8334],// '怀柔'
        ['117.117604', '40.192158', 4534],// '平谷'
        ['117.065719', '40.500122', 724],// '密云'
        ['116.016705', '40.507607', 334]// '延庆'
    ];
    let areaData = [];
    data.map(item => { // 扩大热力图效果
        areaData.push(...new Array(3).fill(item));
    });
    let mapMax = Math.max(...data.map(item => item[2]));
    let mapMin = Math.min(...data.map(item => item[2]));
    myChart.setOption(option = {
        backgroundColor: '#ccc',
        tooltip: {
            show: false,
            trigger: 'item',
            axisPointer: {
                type: 'shadow'
            }
        },

        visualMap: {
            bottom: 20,
            left: 10,
            show: true,
            color: ['#ff4601', '#fffc00', '#87cffa'],
            min: mapMin,
            max: mapMax,
            calculable: true,
            textStyle: {
                color: '#fff',
                fontSize: 12
            }
        },

        grid: {
            height: '100%',
            width: '100%'
        },

        geo: {
            map: 'GD',
            label: {
                show: true
            },
            top: 'center',
            left: '100',
            roam: true,
            width: '90%',
            height: '95%',
            zoom: 0.9,
            label: {
                normal: {
                    show: true,
                    color: '#fff'
                },
                emphasis: {
                    color: '#fff'
                }
            },
            itemStyle: {
                normal: {
                    areaColor: '#76b1ff',
                    borderColor: '#eee',
                    shadowColor: '#76b1ff',
                    shadowBlur: 10,
                    borderWidth: 1
                },
                emphasis: {
                    // 鼠标移入颜色
                    areaColor: '#409EFF',
                    borderWidth: 0
                }
            }
        },

        series: [{
            mapType: 'GD',
            top: 'center',
            left: 'center',
            width: '65%',
            height: '95%',

            name: 'AQI',
            type: 'heatmap',
            coordinateSystem: 'geo',
            blurSize: 40,
            data: areaData,
            // 鼠标移入
            emphasis: {
                show: false,
                itemStyle: {
                    areaColor: 'rgb(255,255,0,1)'
                }
            }
        }]
    })

您可以根据实际需求调整热力图的配置项,以达到更好的数据可视化效果。希望本文对您有所帮助! 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于abaqus里一些问题的记录

在进行布种时&#xff0c;会遇到最大偏离因子和最小尺寸因子&#xff0c;在帮助文档里&#xff0c;是这么解释 要控制曲率对种子设定的影响&#xff0c;请为 Maximum deviation factor &#xff08;最大偏差因子&#xff09; 输入一个值。偏差因子是衡量单元边缘与原始几何图形…

爬虫prc技术----小红书爬取解决xs

知识星球&#xff1a;知识星球 | 深度连接铁杆粉丝&#xff0c;运营高品质社群&#xff0c;知识变现的工具知识星球是创作者连接铁杆粉丝&#xff0c;实现知识变现的工具。任何从事创作或艺术的人&#xff0c;例如艺术家、工匠、教师、学术研究、科普等&#xff0c;只要能获得一…

lambda表达式底层实现:反编译LambdaMetafactory + 转储dump + 运行过程 + 反汇编 + 动态指令invokedynamic

一、结论先行 lambda 底层实现机制 1.lambda 表达式的本质&#xff1a;函数式接口的匿名子类的匿名对象 2.lambda表达式是语法糖 语法糖&#xff1a;编码时是lambda简洁的表达式&#xff0c;在字节码期&#xff0c;语法糖会被转换为实际复杂的实现方式&#xff0c;含义不变&am…

低空无人机飞手四类超视距无人机技术详解

低空无人机飞手中的四类超视距无人机技术详解&#xff0c;主要涉及无人机的性能特点、技术要求、培训内容以及应用场景等方面。以下是对这些方面的详细阐述&#xff1a; 一、四类无人机&#xff08;中型无人机&#xff09;性能特点 四类无人机&#xff0c;现已更名为中型无人…

OpenCAEPoro优化(2)

前言&#xff1a; 首先有一点要注意&#xff1a; 修改代码时&#xff0c;要注意命名空间的冲突问题&#xff08;主要是头文件中&#xff09; 作者了解了相关这个项目的一些背景介绍&#xff1b;得到的主要信息是&#xff1a;这种大型程序一般都是优化的比较完善了&#xff0…

【Vue3实战】:用导航守卫拦截未保存的编辑,提升用户体验

前言 在Vue3应用中&#xff0c;用户可能会在一个页面上进行数据编辑&#xff0c;如填写表单或修改表格中的数据。当用户在未保存更改的情况下尝试离开当前页面时&#xff0c;我们希望能够弹出提示框&#xff0c;告知用户有未保存的更改&#xff0c;并询问是否确定离开。 一、使…

【案例】平面云

教程案例视频&#xff1a;Unity Shader Graph - 云教程 开发平台&#xff1a;Unity 2022 开发工具&#xff1a;Unity ShaderGraph   一、效果展示 二、ShaderGraph 路线图 三、案例分析 核心思路&#xff1a;使用 Noise&#xff08;噪声&#xff09;模拟云层状态   3.1 说明…

打造高效灵活的数字企业——The Open Group 2024生态系统架构·可持续发展年度大会重磅来袭

随着数字经济的高速发展&#xff0c;企业数字化转型已成为时代的必然趋势。如何在这场变革中抢占先机&#xff0c;实现业务增长与降本增效&#xff0c;成为众多企业关注的焦点。为此&#xff0c;The Open Group 2024生态系统架构可持续发展年度大会将于明年盛大开启&#xff0c…

Studying-多线程学习Part1-线程库的基本使用、线程函数中的数据未定义错误、互斥量解决多线程数据共享问题

来源&#xff1a;多线程编程 线程库的基本使用 两个概念&#xff1a; 进程是运行中的程序线程是进程中的进程 串行运行&#xff1a;一次只能取得一个任务并执行这一个任务 并行运行&#xff1a;可以同时通过多进程/多线程的方式取得多个任务&#xff0c;并以多进程或多线程…

Leetcode: 0011-0020题速览

Leetcode: 0011-0020题速览 本文材料来自于LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer&#xff08;第 2 版&#xff09;》、《程序员面试金典&#xff08;第 6 版&#xff09;》题解 遵从开源协议为知识共享 版权归属-相同方式…

Java在用增强for循环遍历集合时删除元素,抛出java.util.ConcurrentModificationException异常

文章目录 0. 前言1. 问题产生的背景2. Java中增强for循环的底层原理3. 为什么增强for循环不支持在遍历集合时删除元素3.1 问题排查3.2 modCount 变量的来源3.3 expectedModCount 变量的来源3.4 导致modCount变量和expectedModCount不相等的原因3.5 为什么用迭代器遍历元素时删除…

学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)

在线学籍管理平台系统 目录 基于SpringbootVUE的在线学籍管理平台系统设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大…

Leetcode: 0021-0030题速览

Leetcode: 0021-0030题速览 本文材料来自于LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer&#xff08;第 2 版&#xff09;》、《程序员面试金典&#xff08;第 6 版&#xff09;》题解 遵从开源协议为知识共享 版权归属-相同方式…

如此的“宠物医保”靠谱吗?

今天是世界动物日&#xff0c;本“人民体验官”推广人民日报官方微博文化产品《带着笑意的眼睛&#xff0c;能看见最美的风景》。 截图&#xff1a;来源“人民体验官”推广平台 人民微博说&#xff0c;带着笑意的眼睛&#xff0c;能看见最美的风景。生活中多一点微笑&#xff…

buuctf 部分misc题

rar 这个不多说了直接暴力破解&#xff0c;提示说的已经很清楚了&#xff0c;四位数密码&#xff1b; qr 这个就是一个二维码&#xff0c;用qr扫一下就出来了&#xff1b; 镜子里面的世界 用stegslove&#xff0c;打开dataextract进行调整 调整之后就可以得到flag了 ning…

ipv6之ospf配置

topo图 路由器均使用ipv6的地址 AR1使用默认路由到达ISP&#xff0c;在ospf上使用路由下发功能&#xff0c;把ISP的静态路由下发给内部网络 ISP使用7条静态路由&#xff0c;到达内部网络 AR1、AR2、AR3、AR4之间使用ospfv3进行通信 但是我配了下面的代码无法通信&#xff0…

driver,sequencer,sequence之间的握手关系_2024年10月3日

driver &#xff1a;根据接口协议将事务转换为一组信号级切换的组件。 sequencer &#xff1a;将事务&#xff08;sequence items&#xff09;从 sequence 发送到 driver&#xff0c;并将 driver 的响应反馈给 sequence 的组件。会对同时尝试访问 driver 以激励设计接口的多个 …

什么是 HTTP 请求中的 options 请求?

在 Chrome 开发者工具中的 Network 面板看到的 HTTP 方法 OPTIONS&#xff0c;其实是 HTTP 协议的一部分&#xff0c;用于客户端和服务器之间进行“预检”或“协商”。OPTIONS 请求的作用是让客户端能够获取关于服务器支持的 HTTP 方法和其他跨域资源共享 (CORS) 相关的信息&am…

spring揭秘25-springmvc04-servlet容器与springmvc容器总结

文章目录 【README】【1】DelegatingFilterProxy回顾【1.1】DelegatingFilterProxy初始化过滤器bean 【2】从servlet容器获取springmvc顶级web容器【2.1】从Servlet容器中获取springmvc容器总结【2.2】ContextLoaderListener加载springmvc顶级web容器并将其添加到servlet容器【…

基于SpringBoot+Vue的科研课题项目管理系统源码

文章目录 1.技术架构2.主要功能3.获取方式 1.技术架构 后端&#xff1a;SpringBoot 前端&#xff1a;Vue – Element UI 2.主要功能 登录 /注销、 用户管理、项目管理、申报管理、变更管理、 结题管理、角色管理、权限管理、数据字典等功能 3.获取方式 点击下方名片&a…