echarts迁徙图 vue_如何快速在Vue中实现流向图或迁徙图?

原标题:如何快速在Vue中实现流向图或迁徙图?

我们经常在一些新闻报道和商业杂志上看到运用地图来展示商业现象的做法。这样利用地图来反映和分析数据的形式,叫数据地图,它可以直观的表达出数据之间的空间关系。

在数据地图中,流向地图属于高频应用场景,但实现起来并不容易,本文来将以Vue这个热门的Web技术为例,探讨如何在项目中快速开发出炫酷的流向地图。

什么是流向地图?

流向地图也称迁徙图,可以在地图上显示信息或物体从一个位置到另一个位置的移动及其数量,通常用来显示人物、动物和产品的迁移数据。单一流向线所代表的移动规模或数量由其粗细度表示,有助显示迁移活动的地理分布。

流向地图多应用于区际贸易、交通流向、人口迁移、购物消费行为、通讯信息流动、航空线路等场景,也可应用企业货物运输,供应链管理。

(流向地图,GIF动图)

实现方案A:Echats

Echarts是百度的开源图表库,其中就包含地图组件。使用Echarts进行地图可视化会稍显复杂,需要有一定JS基础才能上手。

1. 首先打开vue项目,cmd进入命令安装echarts依赖包,默认下载最新版本

npm install echarts –save

2. 进入src目录里的main.js全局引入echarts,以及引入中国地图文件,这样就可以在任何组件中使用了

import * as echarts from 'echarts';

import "echarts/map/js/china.js";

3. 引入相关文件后就开始创建地图实例。在Echarts中,数据需要预先进行清洗,再放入代码中。代码块主要分为三部分:字段定义地理位置、字段赋值以及图表框架搭建,部分代码如下所示:

public render() { //图表绘制方法

this.chart.clear();

const isMock = !this.items.length;

const items = isMock ? Visual.mockItems : this.items;

this.container.style.opacity = isMock ? '0.3' : '1';

const options = this.properties;

let planePath = options.effect ? options.symbol : options.symbolStyle;

let departureValue = isMock ? ['北京', '上海', '广州市'] : this.legendData;

let color = isMock ? ['#a6c84c', '#ffa022', '#46bee9'] : options.palette;

var series = [];

items.map((item: any, i: number) => {

if (item.length) {

let j = i % color.length;

series.push({

name: item[0].fromName,

type: 'lines',

zlevel: 1,

effect: {

show: true,

period: options.period,

trailLength: 0.7,

color: color[j],

symbolSize: 4},

lineStyle: {

normal: {

color: color[j],

width: 0.1,

curveness: 0.2 } },

data: item },

{

name: item[0].fromName,

type: 'lines',

zlevel: 2,

symbol: ['none', 'arrow'],

symbolSize: 10,

effect: {

show: true,

period: options.period,

trailLength: 0,

symbol: planePath,

symbolSize: options.symbolSize },

lineStyle: {

normal: {

color: color[j],

width: 1,

opacity: 0.6,

curveness: 0.2 } },

data: item},

{

name: item[0].fromName,

type: 'effectScatter',

coordinateSystem: 'geo',

zlevel: 2,

rippleEffect: {

brushType: 'stroke' },

label: {

normal: {

show: true,

position: "right", //显示位置

offset: [5, 0], //偏移设置

formatter: "{b}" //圆环显示文字 },

emphasis: {

show: true } },

symbolSize: options.pointSize,

itemStyle: {

normal: {

color: color[j] } },

data: this.parseData(item) } ); } });

var option = {

tooltip: {

trigger: 'item',

formatter: function (params, ticket, callback) {

if (params.seriesType == "lines") {

return params.data.fromName + " --> " + params.data.toName + "
" + params.data.value;

} else {

return params.name; } } },

legend: {

show: options.showLegend,

orient: 'vertical',

top: 'bottom',

left: 'right',

data: departureValue,

textStyle: {

color: '#fff' },

selectedMode: 'multiple', },

geo: {

map: options.mapName,

label: {

emphasis: {

sfalsehow: true,

color: '#fff' } },

roam: options.roam,

layoutCenter: ["50%", "50%"], //地图位置

layoutSize: "125%",

itemStyle: {

normal: {

borderColor: options.borderColor,

borderWidth: 1,

areaColor: {

type: 'radial',

x: 0.5,

y: 0.5,

r: 0.8,

colorStops: [{

offset: 0,

color: options.startColor // 0% 处的颜色

}, {

offset: 1,

color: options.endColor // 100% 处的颜色 }], },

shadowColor: options.shadowColor,

shadowOffsetX: -2,

shadowOffsetY: 2,

shadowBlur: 10 },

emphasis: {

areaColor: options.emphasisColor,

borderWidth: 0 } } },

series: series };

this.chart.setOption(option); }

(模拟数据)

写了大约300多行代码,完成了Echarts的流向地图,效果如下:

(流向地图,GIF动图)

小结

使用代码开发,让Echarts在实现地图可视化的过程中具有极大的自由度(任何用代码开发的操作都是如此)。虽然稍学习一下都能很快掌握简单的JS技巧,但要深入做一些和数据的交互,会有难度;涉及到后端数据整理和传输,复杂度会更高一些,不在本文的示例范围。总体来看,Echarts作为一款国产工具,可以说瑕不掩瑜,推荐有编程基础的读者使用。

实现方案B:嵌入式商业智能软件

除了Echarts之外,还有更快的数据地图制作方法,那就是利用一些可视化地图制作软件,比如一些BI工具Wyn Enterprise、tableau等。那具体如何实现呢?以下,我们以Wyn Enterprise嵌入式商业智能和报表软件作为工具、以一个企业的区域贸易的销量情况为场景,做一些具体介绍。

(原始数据)

首先导入数据,然后创建新的仪表板,拖拽数据字段制作图表。这里有两种方式来识别地理信息:一种是让系统根据位置名称(如城市名)来识别,只绑定位置名称,系统会自动根据位置名称识别对应的经纬度,另一种是直接通过经纬度数据来识别,绑定数据系统会自动识别,一键生成流向地图。

(拖拽式设计流向地图,GIF动图)

我们使用Wyn Enterprise就这样简单拖拽,实现了一个流向地图。地图还自动支持数据过滤,钻取联动分析等功能,最终用户也可以根据自己的个人爱好或者分析目标、设置图表颜色或者其他酷炫的动态效果。

流向地图在Wyn Enterprise可视化大屏中的一个示例:

(Wyn Enterprise可视化大屏)

最后,我们只需要在VUE项目里调用这个仪表板地址即可实现项目需求。借助强大的开发工具,开发效率有了大幅提升。

立即开始

如果您正在寻找快速实现流向地图的方案,来展示流向或迁徙状况,除了传统的图表组件库,Wyn Enterprise等嵌入式商业智能软件不容错过。欢迎通过搜索"Wyn Enterprise"访问官网了解详情,下载试用。返回搜狐,查看更多

责任编辑:

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

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

相关文章

霍纳法树形流图中处理机p个数_2009系统结构试卷答案

一.单项选择题(共10分,每选1分)1.与流水线最大吞吐率高低有关的是(C)A.各个子过程的时间B.最快子过程的时间C.最慢子过程的时间D.最后子过程的时间2.在流水机器中,全局相关是指(D)A.先写后读相关B.先读后写相关C.指令相关D.由转移指令引起的相…

html文件上传添加额外参数,bootstrap-fileinput组件在上传时传递额外参数

解决方法关键的配置参数是uploadExtraData具体的代码如下://获得额外参数的方法fodderType function() {return $("#fodderTypeSelect").val();};//初始化fileinput控件(第一次初始化)function initFileInput(ctrlName, FileExtensions, fileSize) {var …

什么是ASP.NET Core静态Web资产?

What are ASP.NET Core Static Web Assets?HostBuilder.ConfigureWebHostDefaults()中发生了很多隐藏的魔术(最终称为ConfigureWebDefaults)。 我想更好地了解它,因为我找不到有关它的文档。此代码似乎正在加载一些静态文件。什么是静态网络资产,为什么…

计算机基础知识教案1,计算机基础知识教案一

计算机基础知识教案一 秦皇岛外国语职业学院教案首页 年 月 日 学科 计算机基础 年级 专一 课题 计算机基础知识 教具 课时分配 2课时 教学目的 1. 了解计算机的发展、特点和应用 2. 掌握计算机的系统组成 3. 掌握各个逻辑部件性能指标和作用 教学重点、…

C# 9 新特性——init only setter

C# 9 新特性——init only setterIntroC# 9 中新支持了 init 关键字,这是一个特殊的 setter,用来指定只能在对象初始化的时候进行赋值,另外支持构造器简化的写法,Target-typed new expression 在已知类型的情况下可以使用 new() 来…

时间戳计算机网络,时间戳

时间戳(Timestamp)[编辑]什么是时间戳时间戳是指使用数字签名技术对包含原始文件信息、签名参数、签名时间等信息构成的对象进行数字签名而产生的数据,用以证明原始文件在签名时间之前已经存在。通过使用如网络时间协议(NTP)的机制,计算机维系准确的当前…

乔安监控云存储_智能运维丨全栈监控,护航云上业务

自2006年至今,云计算商用领域已经历了十余载的发展。云也从概念普及进入到广泛应用阶段,云服务变成了像水电一样的基础服务,已经是行业共识。云发展速度快、成长空间大,监控场景复杂最新Gartner的报告预测到2019年公有云市场将达到…

阿星Plus:基于abp vNext开源一个博客网站

作为微软最早迈向开源的重要软件之一,.NET 5的发布具有重要意义!微软希望 .NET Framework 开发者能够迁移他们的代码和应用到 .NET 5.0 上,为明年发布的 .NET 6.0 将 Xamarin 开发者过渡到统一平台奠定基础。这里推荐一个.NET Core 3.1 开源的…

html 保存文件指定路径,78.上传文件及在服务器保存文件到任意路径

上传文件到服务器是一个常用的操作,而在服务器上保存文件就需要多多用心了。因为你不可能只在一个路径里保存文件,所以需要实践一下保存文件到任意位置。当然,前提是你的应用程序有这样的操作权限。首先建立一个main.go文件,作为项…

excel表格中添加combobox_Excel中两个表格对比,找出不同数据

当你有两个Excel工作簿需要对比数据时候,你该怎么做呢?数据少,我们直接用眼睛就可以看到,数据如果太多,那么对比找出不同数据,是一件非常困难的事情。今天,小汪老师就来教大家几招,可…

2021,未来可期

一转眼,已经是2021了。这个公众号,也陪伴大家走过了八个月的时光。八个月,35篇原创,坚持写一些能够经受时间考验的文章,也算是一个小小的成就。感慨一下,因为,未来可期!整理了一个目…

quill变html转化,将Quill Delta转换为HTML

这里是我是如何做到的,因为你快速乡亲。它似乎与express-sanitizer一起工作得很好。app.jsimport expressSanitizer from express-sanitizerapp.use(expressSanitizer())app.post(/route, async (req, res) > {const title req.body.article.titleconst content…

【Git】Git-常用命令备忘录(一)

不管是linux还是git,都有相当一部分命令,但是如果不常用,或者久疏战阵,总会有些遗忘。好记性不如烂笔头。美国《科学》杂志刊发了Betsy Sparrow等的科研论文,称Google等搜索引擎模式可能会损害人的大脑记忆力。意思大概…

非抢占式优先算法例题_非抢占短作业优先算法源代码(C语言)

#include #include #define MAX 5 //进程数/*短作业优先算法*/struct pro{int num; //进程名int arriveTime; //到达时间int burst; //运行时间;struct pro *next;};//函数声明struct pro* creatList();void insert(struct pro *head,struct pro *s);struct pro* searchByAT(st…

计算机算法音乐专业,音乐信号分析算法的乐理简说(非音乐专业的乐理)

前言这篇文章不是讲乐理知识的,那是音乐制作人,编曲人员所需要钻研的学问,不过你要有兴趣也可以看看专业的乐理知识。这里仅仅是说在音乐信号分析的项目中,我们需要知道的一些参数的意义。在诸多信号处理,或图像处理算…

代码改变世界,也改变了我

愿2021的你,可以勇敢的踏出那一步,可以去追求自己想要的东西。脑图版代码版using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp14 {internal class Program{pr…

计算机基础与应用教程计算机硬件,计算机基础系列一:计算机硬件

1、编程语言的作用及与操作系统和硬件的关系一个完整的计算机系统包括硬件、操作系统、软件(即程序员开发的各种软件)三部分组成。各程序员开发的软件若直接调用计算机的硬件,如硬盘读取、音频播放等,则软件不仅编写复杂同时影响开发效率,因此…

宝塔mysql远程链接_宝塔apache启动失败:报错 AH00526: Syntax error on line 解决方案

错误信息:AH00526: Syntax error on line 54 of /www/server/apache/conf/httpd.conf:Cannot define multiple Listeners on the same IP:port朋友网站突然访问不了,进入宝塔后查看Apache服务器没运行,重启Apache时提示这个错误信息打开Apach…

Amazing 2020

Amazing 2020Intro2020 转眼即逝,2020 是比较艰辛的一年,因为疫情原因,很多人的工作以及生活都多多少少受到了一些影响。引用网上盛传的一句话——2020 实“鼠”不易, 2021 “牛”转乾坤。希望大家 2020 立的没有完成的 Flag 在 2…