Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据可视化之下发图实践

数据可视化之下发图实践

原创
作者头像
个推
修改于 2019-04-18 03:37:55
修改于 2019-04-18 03:37:55
9480
举报
文章被收录于专栏:个推技术实践个推技术实践

作者:个推前端工程师 东风

随着互联网的快速发展,数据维度越来越广,呈现形式也越发丰富,具有多维度数据特点的相关业务实践都能通过可视化图表来展示,比如个推的下发图,从时间和区域两个维度,可以即时、直观地展现个推数据下发的过程。

一、下发图的由来

个推下发图主要用于呈现个推为APP提供推送服务时数据的下发过程,可以直观显示个推推送触达到的城市,有利于开发者对下发数据进行分析。

个推下发图运用了迁徙图的原理,再通过自主设计开发出的一套可视化展示图像。这一类型的可视化可以广泛应用于拥有地理位置信息和数据转移特征的数据展示。

二、下发图的构成

下发图主要由地图、地理位置信息,以及飞线组成。如下图所示:

三、下发图的技术要点

1.地图

地图可以利用第三方地图服务,也可以自主绘制地图,本文以后者为例。自主绘制的地图主要利用了墨卡托投影原理,将地球正轴圆柱投影,由经纬度信息转化到画布上对应的位置。

本文案例中用了 d3.js 中的 geoMercator 进行墨卡托投影转换。

然后我们可以在阿里云的 datav 中获取地图的 geojson 数据,具体地址可参见括号内链接,(https://datav.aliyun.com/tools/atlas )再通过 canvas 原生 Api,添加背景色、边框等,就可以画出想要的地图了。

注意:下图中的地图角度透视主要应用了 css 中的 transform,perspective、rotateX、rotateY、rotateZ 等。

遵循上述步骤,一个透视角度的静态地图就绘制完成了。

2.贝塞尔曲线

贝塞尔曲线是计算机图形学中相当重要的参数曲线,它通过一个方程来描述一条曲线,根据方程的最高阶数,又分为线性贝塞尔曲线、二次贝塞尔曲线、三次贝塞尔曲线和更高阶的贝塞尔曲线。

本案例中主要应用了二次贝塞尔曲线,二次贝塞尔曲线的函数如下:

B(t) = (1-t) ²P0 + 2t(1-t)P1 + t²P2, t ∈ 0,1

上图为本文案例中飞线的贝塞尔曲线应用,其中 from 为起点,to 为终点,curveness 为曲线的曲率,取值-1 ~ 1,曲率的绝对值越大,曲线越弯曲,percent为飞线位置占比。

3.动画

在 canvas 中,动画效果的实现通常是由 window.requestAnimationFrame 循环执行,因此,飞线需要算出每一帧中飞线的状态,以及飞线的入场和离场形态。

4.发光效果

那么下发图的特效具体如何实现呢?首先我们来介绍一下头部发光效果的实现过程:

我们以工业中的HSL色彩模式为颜色标准,通过对色相(H)、饱和度(S)、明度(L)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色,HSL即代表色相、饱和度、明度三个通道的颜色,这一标准几乎包括了人类视力所能感知的所有颜色。以此为依据,可以发现光源的发光规律,即光源中心的明亮度最高,由内向外,明亮度依次递减。

所以根据配置的基础颜色,就能获取到顶点发光处颜色的明亮度,大致方法如下:

完成头部发光步骤后,接下来需要打造一个酷炫的形状。发光的头部是一个类似棉签棒的形状,该形状可以用一个半圆和一个三角形来绘制,再根据曲线的切线,获取三角形以及半圆的旋转角度。

完成下发图头部制作后,接下来需要进行尾部的操作,因为canvas自带线性渐变,所以具体代码如下:

canvas 的落地效果呈圆形渐变样式,当飞线到达终点后,完整的落地效果就开始展示,整个画面类似雨滴降落到地面。

5.透视

如果不调整透视角度,贝塞尔曲线的样式如下图所示:

当曲线与下发方向的角度呈90度时,曲率最大;角度为0度或者180度时,曲率最小,与余弦定律相似。

其中 from 是起始位置,to 是终止位置,curveness 是曲线的曲率,angel 是视线的角度。

最终效果如下:

四、技术选型

在进行下发图的技术选型时,个推技术团队对比了 svg 和 canvas 两种技术栈,最后选择了 canvas,然后配合 requestAnimationFrame 画出下发轨迹的帧动画。两款技术栈的具体性能对比如下:

五、总结

随着数据维度的扩展和丰富,数据可视化的形态日渐丰富。作为地理位置信息和数据转移特征的数据可视化图表,下发图可以更直观地展现个推为APP提供推送服务时的下发量、下发区域等数据,对APP的行业分析以及战略调整有着指导性意义。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
个推数据可视化之人群热力图、消息下发图前端开发实践
随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在数据可视化领域也开展了深入的探索和实践。
个推
2019/09/18
2.6K0
个推数据可视化之人群热力图、消息下发图前端开发实践
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~
随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在数据可视化领域也开展了深入的探索和实践。
个推
2019/09/25
7.9K0
canvas绘制飞线效果
在我们做的可视化大屏项目中,经常会遇到飞线的效果。 在我们的大屏编辑器中,可以通过拖拽+配置参数的方式很快就能够实现。下面是我们使用大屏编辑器实现的一个项目效果:
用户3158888
2020/11/11
1.7K0
数据可视化大屏产品在滴滴的技术探索
导读:现代的数据可视化产品相较于之前的仪表盘应用,在数据方面呈现更加生动、数据实时性高、交互更为友好、效果更加震撼等特点,越来越多的人倾向于通过各类可视化产品使静态的数据“活”起来。基于此背景,我们结合滴滴的各业务线发展,打造了本文介绍的数据可视化大屏产品。
万能数据的小草
2021/06/24
2.9K0
数据可视化大屏产品在滴滴的技术探索
【独家】一文读懂数据可视化
前言 数据可视化,是指将相对晦涩的的数据通过可视的、交互的方式进行展示,从而形象、直观地表达数据蕴含的信息和规律。 早期的数据可视化作为咨询机构、金融企业的专业工具,其应用领域较为单一,应用形态较为保守。步入大数据时代,各行各业对数据的重视程度与日俱增,随之而来的是对数据进行一站式整合、挖掘、分析、可视化的需求日益迫切,数据可视化呈现出愈加旺盛的生命力,表现之一就是视觉元素越来越多样,从朴素的柱状图/饼状图/折线图,扩展到地图、气泡图、树图、仪表盘等各式图形。表现之二是可用的开发工具越来越丰富,从专业的
数据派THU
2018/01/29
2.6K0
【独家】一文读懂数据可视化
如何1人5天开发完3D数据可视化大屏
相信从事过数据可视化开发的你对大屏并不陌生,那么开发一个酷炫的大屏一定是很多数据可视化开发者想要做的事情。
ConardLi
2020/10/30
3.6K0
如何1人5天开发完3D数据可视化大屏
数据可视化基础 - 笔记
视觉编码是一种:将数据信息(属性 + 值)映射成可视化元素(可视化符号 + 视觉通道)的技术
TagBug
2023/03/17
4420
数据可视化基础 - 笔记
可视化图表实现揭秘
1. 介绍 1.1 什么是数据可视化? 可视化是利用计算机图形学和图像处理技术,将数据转换成图形或者图像在屏幕上显示出来,再进行交互处理的理论、方法和技术。 数据可视化并不是简单的将数据变成图表,而是以数据为视角,看待世界。数据可视化就是将抽象概念形象化表达,将抽象语言具体化的过程。 1.2 为什么要用数据可视化 首先我们利用视觉获取的信息量绝对远远的比别的感官要多得多。 它能帮助分析的人对数据有更全面的认识,下面举个🌰 我们看下面几组数据: 对数据进行简单的数据分析,每组数据都有两个变量 X 和 Y,然
用户1097444
2022/06/29
1.2K0
可视化图表实现揭秘
腾讯云AI代码助手编程挑战赛-可视化飞线图
本项目是借助腾讯云AI代码助手编写的基于ECharts库开发的交互式数据可视化工具。项目通过飞线图的形式,直观展示中国地图上各个城市之间的连接关系,适用于物流路径、交通网络、迁徙路线等多种场景的展示。
全栈若城
2025/01/10
1090
腾讯云AI代码助手编程挑战赛-可视化飞线图
数据可视化系列-04数据大屏基础知识
参考:小白必读!大屏数据可视化设计的原则和流程 数据可视化大屏设计步骤,有3步流程 大屏可视化设计尺寸高级指南
IT从业者张某某
2023/10/16
5820
数据可视化系列-04数据大屏基础知识
数据可视化基本套路总结
真依然很拉风,简书《数据可视化》专栏维护者,里面有很多优秀的文章,本文便是其中一篇。
生信宝典
2018/08/01
2.8K0
数据可视化基本套路总结
超赞,20个炫酷的数据可视化大屏(含源码)
可视化大屏不再只是电影里奇幻的画面,而是被实实在在地应用在政府、商业、金融、制造等各个行业的业务场景中,切切实实地实现着大数据的价值。
小F
2020/12/16
10.5K7
超赞,20个炫酷的数据可视化大屏(含源码)
【数据可视化技术】数据可视化概述&工具
通过图表可视化分析数据结果,不仅能让数据更加生动、形象,便于用户发现数据中隐含的规律与知识,而且这也是软件工程师与数据工程师合作的最终工作成果,有助于帮助用户理解大数据技术的价值。在Hadoop生态群中,核心部件(如HDFS、Yarn和HBase等)都提供可视化的集群管理功能,便于用户直观、快速地了解集群的运行状态;Kylin、Superset及Zeppelin等OLAP工具的重要任务是为用户提供在线可视化分析功能。但在企业级应用开发中,在前面提到的技术无法直接集成到应用系统,还需要使用基于桌面、Web等的可视化组件进行定制开发。 本章简单介绍数据可视化的发展历史、可视化工具分类,重点结合ECharts介绍Web可视化组件生成方法,并给出Java Web开发与相关大数据组件的数据集成,以展现数据可视化结果。
Francek Chen
2025/01/22
3610
【数据可视化技术】数据可视化概述&工具
52个数据可视化图表鉴赏
一、数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信息单位的各种属性和变量。它是一个处于不断演变之中的概念,其边界在不断地扩大。主要指的是技术上较为高级的技术方法,而这些技术方法允许利用图形、图像处理、计算机视觉以及用户界面,通过表达、建模以及对立体、表面、属性以及动画的显示,对数据加以可视化解释。与立体建模之类的特殊技术方法相比,数据可视化所涵盖的技术方法要广泛得多。
数据STUDIO
2022/02/24
6.4K0
52个数据可视化图表鉴赏
数据可视化系列-02各类图表的综合使用介绍及实践-上篇
参考:https://blog.csdn.net/qq_20777797/article/details/77297325 可视化什么:数据抽象 数据可视化中,可视化的元素是数据,这里所指的数据是广义上的数据,包括文本、图片、声音等超媒体数据。 可视化过程中所涉及的四种基本数据集类型分别是:
IT从业者张某某
2023/10/16
4380
数据可视化系列-02各类图表的综合使用介绍及实践-上篇
如何做好基于地图的数据可视化?
这个地图是Audubon鸟类和气候变化报告中的一部分,预测了季节变化的区域,黄色代表该地区处于夏季,蓝色代表冬季。
IT阅读排行榜
2018/08/13
1.7K0
如何做好基于地图的数据可视化?
Qt编写数据可视化大屏界面电子看板系统
目前大屏大数据可视化UI这块非常火,趁热也用Qt来实现一个,Qt这个一站式超大型GUI超市,没有什么他做不了的,大屏电子看板当然也不在话下,有了QSS和QPainter这两个无敌的工具组合,借用几个Qt高手朋友的话来说,都是分分钟。在整个系统的编写过程中,发现数学知识真的还是蛮重要的,在重要的几个算法点上,需要多次用到二元一次方程才能搞定几个算法,比如如何分组绘制柱状图。
feiyangqingyun
2019/08/20
5.4K1
Qt编写数据可视化大屏界面电子看板系统
一图胜千言—Tcharts 图可视化解决方案
Tcharts即Tvision-T1,是基于Canvas的自研可视化组件。 致力于提供高性能,易定制的企业级可视化解决方案。目前支持“统计图表”,“地图”和“图可视化“组件。本文主要介绍“图可视化”组件部分。目前已应用到“性能观测APM“,“腾讯云CDN“, “腾讯云安全中心“等多个产品中,提供差异化的图可视化解决方案。
拓荒牛儿
2022/05/13
1.5K0
一图胜千言—Tcharts 图可视化解决方案
【数据可视化】让效率“爆表”的49个数据可视化工具
工欲善其事,必先利其器。好的工具可以大大提升你的工作效率,并获得身边人的羡慕和赞赏。今天,我们就来向小伙伴们分享一大波非常实用的工具,武装你的大脑。 ▲图表类 iCharts 简介:各种主题的开放图
陆勤_数据人网
2018/02/26
3.1K0
【数据可视化】让效率“爆表”的49个数据可视化工具
前端图表可视化的应用实践总结
腾讯企鹅辅导在学生上课结束后推送“学习报告”,是课程所提供的一项重要服务。家长在“学习报告”中能查看孩子上课时间及互动情况,答题及掌握知识点,作业考试分数,班级排名等诸多数据,继而让学生家长及时掌握孩子的学习情况。
IMWeb前端团队
2019/12/04
8820
推荐阅读
相关推荐
个推数据可视化之人群热力图、消息下发图前端开发实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档