高大上必备!D3.js对产品的贡献度剖析

在这个用数据说话的时代(靠脸吃饭的年代),没有一个好的展现形态(没有一张帅气清秀的脸蛋),对于整个产品产生的影响,那简直...

 在数据可视化竞争的战场,互联网的各家各户都很注重自家产品的前端展现。这也造成了目前前端各种火到爆,火的不要不要的原因之一。各类新型的框架也是接踵而至,如:emberjs、angluarjs、backbonejs、vuejs以及reactjs等等,这个对目前企业的发展也造成了一定的困扰。

追星派:此派弟子非常注重对新技能的渴求,看到新的技能书,不管前方道路如何坎坷,练了再说。只要是新的技术,马上应用到产品中,最后放弃的有不少。

保守派:该门徒比较成熟稳重,想要在稳中求胜,观察形式的发展,最后再做定夺。往往需要一段时间做技术的选型,周期还是蛮长的。

顽固派:这些人一般年纪比较大,不喜世俗新物,只要目前状况良好,从不考虑吸纳新的知识。技术落后了不说,对新入派弟子的转化率相对要降低很多。

创新派:这批生物,看到形式有变,立马能帮你变出另一个武功秘籍。典型的就有某宝的成员,这里充斥各种技术大牛,锻炼能力的好去处。

一说好像TM的跑到火星上去了。​

目前前端的发展属于一个HTML5的时代,时代的英雄豪杰也是层出不穷,例如:我们的主角D3.js、raphaeljs、国产巨星echarts以及国外猩猩highcharts还有等等。琳瑯满目,选择一款合胃口的就行。咱这就来说说,D3js可以帮忙做写什么事内?

D3js

D3js是什么?前面我们也提到了一点,它是一个可视化工具库。这工具的强大之处,就跟给了你一张纸和一枝笔,随心所欲,想怎么画就怎么画,非常符合任性的我们。它借助html、svg以及css,可以把我们抽象的数据,形象鲜活的呈现出来。D3是一个严格遵循WEB标准,所以它对于目前主流的框架都可以很好的兼容,当然它也提供了很强大的可视化组件。官网:https://d3js.org/

,它可以轻松的使用npm下载(npm i d3),什么?你问npm是什么?(npm:https://en.wikipedia.org/wiki/Npm_(software))。

强大的可视化组件:https://github.com/d3/d3/wiki/Gallery

小明:老师,你一直在说它如何如何腻害,如何如何强大,那么能形象生动的具体说说咩?

老师:

场景一:

老板说,最近我们的人数是越来越多,组织架构也是越来越复杂,是该好好给我们的员工们,理一理组织关系图了,免得我们的人员找不到自己的组织,躲在厕所哭泣。

按照我们以前的尿性,这不就是一颗树形结构图么,so easy... 然后就有了我们以下的图:

 

LONG LONG AGO 老板看到之后的表情可能是这样的:

欣慰

近几年互联网老板看到的可能是这样的:

无言以对

这个时候如果出现的图是这样的:

▲请忽略图上的内容

这个时候老板肯定会来一个

就是它了

这个就是D3中的一个tree布局展现的一个代表形态。能很友好的展现层级关系结构的图形,非常时候用来描述组织架构这类信息的描述。

场景二

 老板说,最近我看滴滴打车和uber打车很火热,你看他们的司机版本在地图上面还能看打车的集中区域图,这个数据能力可以干很多事的。我们也需要帮助运维人员来进行产品分析在哪些时段,用的人比较多,帮助运维人员做分析。

这个时候,很多人想到的可能是通俗的家常风格:

▲echarts

我想大家用到的这个echarts图形应该很多吧,但要是这个时候来一个能脱颖而出的表现力的话,产品在竞争上面必然会加分,比如这样:

▲d3.heatMap

当然这两种展现风格各有千秋,就看每个人对它的看法了。

场景三

老板说需要看到我们的产品有多少机器安装上了,需要有一个形式展现,并且需要时刻的观察这个机器上面的一个健康状况,能直观的进行数据分析。

这个也是笔者当初拿到手,然后开始着手研究这个展现形式该如何是好。最初笔者觉得,这个东西,不就是可以用一个列表形态来展示么。艾玛,立马来了一个:

▲表格形态

可是上级总是觉得这是不够的,没有亮点。

为了博得眼球,我只能求助于咱的D3黑科技,瞬间就感觉智商已经不欠费了。于是,咱就有了下面的变种形态类似物:

▲pack layout

以上,很简略的介绍了D3能干些什么,当然,D3远远不止是单单只有这些形态,上面也说了,它的功能很强大,不怕它做不到,就怕你想不到,用在这里也是很合适的。

它有几大优势:

1.适应性高

一般的第三方组件库,提供的API往往在很多时候,都满足不了我们百变的需求。而我们的D3很适应这种场合,它可以随心所欲的尽可能的满足我们的需求。因为它使用的是SVG,可以和HTML一样使用CSS来进行修饰。

2.大量的布局

它可以使用变换(transformation)和滤镜(filter)等等的动画效果。有很多的布局,上面介绍的树装图,还有饼状、打包图、矩阵图等等。

3.缩放不会损失精度

SVG 是可以缩放的矢量图,D3基本是在在SVG上绘制的,所以放大缩小都不会有精度的损失。

总之,就先粗略的介绍这些吧~

作者:祝恩良,优云软件一只活在二次元世界的萌货,虽然在三次元的世界卖不了一手好萌

优云:秉承devops的理念,从监控、到应用体验,到自动化持续交付,全栈运维服务平台 https://uyun.cn

时间: 2024-10-21 16:05:45

高大上必备!D3.js对产品的贡献度剖析的相关文章

《D3.js数据可视化实战手册》—— 1.3 搭建一个基于NPM的开发环境

1.3 搭建一个基于NPM的开发环境 D3.js数据可视化实战手册如果你所在的项目是一个略复杂的数据展示项目,并且使用了为数不少的JavaScript库,那我们之前讨论的那个简单的解决方案可能就显得有些褚小杯大,不能胜任了.在这一节当中,我们将展示一个使用了NPM(Node Packaged Modules,实际上就是JavaScript库的代码库管理系统)的更加强大的系统.如果你像我一样没有耐心,想更快地尝试本书最带劲儿的部分,想学点秘传招式,完全可以跳过这部分,如果想搭建一个产品开发环境,再

Framer.js 让产品原型更逼真

  如果你把Framer Studio导出的Framer框架代码覆盖到你自己的Framer框架下就可以实现了,毕竟Framer是开源的框架,可做任意Hack.如果你还不了解,可以去下面得连接check之前我修改过的代码: 当你试过之后,你会发现是framer.generated.js这个文件起的作用. 对于deviceType你可以通过变量的方式传入: window.Framer.Defaults.DeviceView = {"deviceScale" : -1,"orien

《D3.js数据可视化实战手册》—— 1.2 搭建一个简易的D3开发环境

1.2 搭建一个简易的D3开发环境 D3.js数据可视化实战手册 在开始使用D3之前,我们要做的第一件事是搭建一个开发环境.这节里,我们将告诉你如何在几分钟内搭建一个简单的D3开发环境. 1.2.1 准备阶段 在我们开始前,请确保你已经安装好一个文本编辑器. 1.2.2 搭建环境 我们先要下载D3.js. 1.我们可以在http://d3js.org/下载最新版本的D3.js,也可以在https://github. com/mbostock/d3/tags下载之前的版本.另外,如果你对开发中的最

《D3.js数据可视化实战手册》——导读

前言 D3.js数据可视化实战手册 D3.js是一个JavaScript库,它主要用于对数据的动态图表展示.通过HTML.SVG以及CSS,D3可以让数据展现得更加鲜活.D3使得数字的图形化展示变得异常简单,可以说,它是当下最强大的基于网络的数据可视化技术. 本书理论与实践结合,力图向读者全方位地展示D3数字可视化技术,帮助读者快速利用D3创建可视化程序.学习完本书后,快速高效地创建叹为观止的数据可视化程序,对读者来说将是小菜一碟! 本书由浅入深,首先介绍了一些D3数字可视化编程中的基本概念,继

IT管理必备:数据库审计产品部署介绍

本文讲的是IT管理必备:数据库审计产品部署介绍,随着美国金融危机爆发引发的全球经济危机,让我们越来越深刻地认识到违规操作.疏于监管带来的危害,于是审计作为现在监管比较普遍.实用且成熟的专业迎来了又一次事业的高峰. 经历了几十年的传统审计,虽然成熟,但是一直都是采用手工的方式进行工作的.而信息化技术的出现以及大量的信息通过信息系统处理,使得通过人工审计的方式逐渐捉襟见肘,利用信息技术手段实现或辅助审计的呼声越来越高. 审计重要的是通过记录数据审计行为,严防舞弊.违规操作.财务欺诈等行为,因此数据的

d3.js 读取csv文件,csv文件长度为4万多条,用下面的方法读取,出现脚本运行时间过长

问题描述 d3.js 读取csv文件,csv文件长度为4万多条,用下面的方法读取,出现脚本运行时间过长 试过将csvdata.length改成数字,例如25,则可以正常显示.csvdata.length为45284. var csvdata = new Array(); d3.csv("daaa02_bus_station.csv",function(csvdata){ for (var i = 0; i < csvdata.length; i ++) { //var point

D3.js实现柱状图的方法详解_javascript技巧

D3.js介绍 D3.js 是一个基于数据操作文档JavaScript库.D3帮助你给数据带来活力通过使用HTML.SVG和CSS.D3重视Web标准为你提供现代浏览器的全部功能,而不是给你一个专有的框架.结合强大的可视化组件和数据驱动方式Dom操作.这里也可以看到它是用SVG来呈现图表的,所以使用D3.js是需要一定的SVG基础的. 如何用D3.js实现柱状图? 柱状图里面有坐标轴和柱子.然而我们还需要SVG画布来画这些东西.先把大概的画图框架搭起来,代码如下(请注意此时我在body标签里添加

D3.js封装文本实现自动换行和旋转平移等功能_javascript技巧

我们下面话不多说,本文主要介绍的是利用D3.js封装文本实现自动换行功能的步骤,下面来一起看看吧. 一.引用 multext.js 文件 multext.js function appendMultiText(container, str, posX, posY, width, fontsize, fontfamily){ if( arguments.length < 6){ fontsize = 14; } if( arguments.length < 7){ fontfamily = &q

D3.js实现饼状图的方法详解_javascript技巧

前言 小编在之前已经跟大家分享过关于怎样用柱状图和折线图这两种基本图表.这两种图表都是有坐标轴的,现在来说一种没有坐标轴的图表--饼图. 饼状图实现 还是和之前一样,我们先把简单的画图框架搭起来,添加SVG画布.但是这里需要注意的是,为了方便后面画饼图上的弧形,我们把组合这些元素的g元素移动到画布的中心: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"