让数据可视化变得简单 – JavaScript 图形库
作者 | 董叶
公司决策层会围绕着数据来制定相应的策略,数据的重要性与日俱增,政府、金融机构、互联网大厂正在以前所未有的速度收集数据,面对扑面而来的数据,没有抽象、视觉层的帮助,我们很难快速理解掌握其中信息,正确的图形工具往往是致胜的关键
对于JS开发人员而言,数据可视化能力和开发网页一样重要,特别是需要将两者结合起来的时候,在大数据时代,在网页中显示数据统计图表,从而能很直观地了解数据的走向。
随着JavaScript 在数据可视化方向的日益普及,涌现出一大批JavaScript图形库为前端网页创建精美的图表,但是如何选择合适JavaScript 图形库需要考虑许多因素:
1 想构建什么样的图表?饼图、地图、线条、条形图?
2 数据集有多大? 基于 SVG 的库通常更适合中小型数据集,基于Canvas 则是大型数据集更可靠的选择。
3 应用程序是用于Web、移动还是两者兼而有之?
4 使用的JavaScript 框架?
5 何时使用对应的图形库? 如果是自有研发,前期成本高,但是后期可塑性强。
百度和谷歌都开发了对应的图形库,Echart、Google Charts , 以下介绍的几款图形库有着各自不同的特点。
01 D3.js
D3是最受欢迎的JS图形库之一,不仅用于数据可视化,还用于动画、数据分析、地理和数据实用程序。
通过HTML、SVG和CSS将数据鲜活形象地展示出来,它的所有操作都是真实的DOM操作,是和React或Vue 等现代前端框架完全不同的思路, 基于一整套数据到SVG属性的计算框架和丰富的工具包, 即使不理解SVG属性计算公式的程序员也能轻松将数据转换成想要的SVG属性。
D3 解决问题核心是基于数据的高效文档操作。提供了非凡的灵活性。
使用最小的开销,使得D3的速度非常快,支持大型数据集以及交互与动画的动态行为。
D3的函数风格允许通过各种组件和插件的形式进行代码的重用。
D3 缺点是它有一个陡峭的学习曲线,文档已经过时并且导航混乱,上手要比其他框架困难。
D3 GitHub
D3 画廊
02 Victory
一组专门为React 和 React Native设计的模块化图表组件。
Victory很好地提供了创建图表的基础。轴自定义、标签、为单个图形传递不同的数据集之类的事情都非常简单,并且调整样式和行为非常简单直观。
它非常有效,可以让您用最少的代码构建一些漂亮的图表。绝对值得检查跨平台应用程序。
Victory GitHub
Victroy画廊
03 React-vis
它是 Uber创建的一个简单的JavaScript 图形可视化库,它允许你创建所有常用类型的图表:条形图、树形图、线形图、面积图等。
它的API 非常简单,并提供了很大的灵活性。它很轻,动画简单但流畅。它还允许您根据现有元素编写自定义图表。
尽管关于React-Vis的内容并不多,但文档简单易读。
React-vis GitHub
React-vis 示例
04 Flexmonster / Webdatarocks
它是React Native的数据透视表组件,对习惯了Excel分析风格的业务人员十分友好,并且能与React和其他框架很好地兼容,适合需要聚合、排序和过滤功能的数据报告。
它可以在Web 浏览器中免费使用,支持Microsoft Analysis Services OLAP多维数据集,Mondrian,icCube,Salesforce,SAP,SQL(MS SQL,MySQL和许多其他)静态数据库或者CSV文件。
可以在客户端浏览器处理多达100MB的数据文档以及庞大的OLAP多维数据集信息量,非常适合用于商业智能(BI)信息评估。
05 Chart.js
一个非常流行的开源库,在GitHub 上拥有超过4万颗星。它是轻量级的,可以使用HTML5 Canvas元素构建响应式图表。轻松混合和匹配折线图和条形图以组合不同的数据集,这是一个非常棒的功能。
Chart.js 默认提供六种不同的图表类型,它也是很多公司处理超大数据集的首选库。操作简单、对初学者友好。绝对是最有趣的开源库之一。
GitHub 上的
Chart.js Chart.js 示例
06 amCharts
最热门的商业图表库之一。基于其精美的设计使,amCharts将Apple、Amazon、NASA和许多其他知名公司列为他们的客户,amCharts是一种商业工具,每个网站许可证的起价为180 美元。
作为回报,使用者可以获得所需的所有类型的图表,包括地理地图和出色的客服支持,响应时间平均不到3小时。
对于大公司来说,这是一个很好的解决方案。对于小公司或者个人用户,amCharts 也支持免费下载,唯一的限制是会在图表的左上角显示该网站的链接。
适用于:Angular、React、Vue.js、普通 JS 应用程序、TypeScript
amCharts GitHub
amCharts 网站
07 Zoomcharts
自称为“世界上最具交互性的JavaScript图表库”。除了反应性,它主要关注多点触控手势和各种设备的原生感觉。
即通过放大或者缩小来与图表进行物理交互,从而在不同数据粒度进行切换,支持数据图表的联动,对任何一个图表的过滤操作,会在其他图表中响应。
该库承诺提供漂亮的可视化效果,只需很少的代码,并且可以轻松部署在产品中。
ZoomChatrts在默认设置下,使用相同的数据和设置,运行速度比基于 SVG 的竞争对手快 20倍。
这是因为ZoomCharts从一开始就是为了处理和可视化大数据构建,支持在同一个图表混合多个数据源,通过数据存储和展示分开,轻松集成数据的下钻聚合操作。
Zoomcharts 网站
Zoomcharts 画廊
JavaScript图形世界中有很多机会,这些丰富的图形库可以协助大家完成复杂的数据分析工作,通过抽象的视图层解读数据,帮助企业挖掘数据价值。
越来越多的图形库证明了数据可视化对于整个Web的重要性——希望上面的介绍能帮助相关项目开发者创建漂亮的数据化解决方案。
让数据可视化变得简单 – JavaScript 图形库的更多相关文章
- R数据可视化手册学习简单的绘制常见的图形
1.绘制散点图 # 使用ggplot2 library(ggplot2) ggplot(data = mtcars, aes(x = wt, y = mpg)) + geom_point() 2.绘制 ...
- 13个可实现超棒数据可视化效果的Javascript框架
随着商业及其相关需求的发展,数据成为越来越重要的元素之一,为了更加直观和明显的展示商业潜在的趋势和内在的特性,我们需要使用图表和图形的方式来直观动态的展示数据内在秘密,在今天的这篇文章中我们推荐12款 ...
- 蚂蚁金服新一代数据可视化引擎 G2
新公司已经呆了一个多月,目前着手一个数据可视化的项目,数据可视化肯定要用到图形库如D3.Highcharts.ECharts.Chart等,经决定我的这个项目用阿里旗下蚂蚁金服所开发的G2图表库. 官 ...
- 比起网易有数BI,也许这款数据可视化软件更适合你!
有数BI是网易推出的面向企业客户的可视化敏捷BI产品.拥有数据填报和自助式商业智能分析产品,提供网页端和手机端应用,帮助客户快速实现数据填报.多维分析.大数据探索.实时大数据展示和成员分享. 山海鲸可 ...
- 4种更快更简单实现Python数据可视化的方法
数据可视化是数据分析或机器学习项目中十分重要的一环.通常,你需要在项目初期进行探索性的数据分析(EDA),从而对数据有一定的了解,而且创建可视化确实可以使分析的任务更清晰.更容易理解,特别是对于大规模 ...
- 2018年最佳JavaScript数据可视化和图表库
现在有很多图表库,但哪一个最好用?这可能取决于许多因素,如业务需求,数据类型,图表本身的目的等等.在本文中,每个JavaScript图表库将与一些关键因素进行比较,包括图表类型,商业或免费和开源状态. ...
- ECharts-基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表
ECharts http://ecomfe.github.com/echarts 基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算 ...
- 使用JavaScript和D3.js实现数据可视化
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由独木桥先生发表于云+社区专栏 介绍 D3.js是一个JavaScript库.它的全称是Data-Driven Documents(数据 ...
- 4款开源免费的数据可视化JavaScript库
概述:交互式数据可视化在很大程度上取决于JavaScript库的任务能力.在这篇文章中,我们将看看四个JavaScript库:D3,InfoVis,Processing.js,和Recline.js. ...
随机推荐
- 详谈 Java工厂 ---工厂方法模式
1.前言 有个场景,消费者需要付钱,有可能是使用支付宝.微信.银行卡,那么该怎么选择呢? 是不是想到了使用用if else判断?还是使用switch? 一个地方这样写还好,如果有很多这样的业务,难道都 ...
- Go语言系列之自定义实现日志库
日志库logo gitee地址传送门:https://gitee.com/zhangyafeii/logo 日志库需求分析 1. 支持往不同的地方输出日志 2. 日志分级别 Debug Trace I ...
- SpringBoot学习笔记一之本地环境基础搭建
原文链接: https://www.toutiao.com/i6802935050196222471/ 工程创建 Maven创建工程 搜索maven找到project的创建 创建simple proj ...
- 深入理解MySQL索引底层数据结构
作者:IT王小二 博客:https://itwxe.com MySQL 索引相关的数据结构有两种,一种是 B+tree,一种是 Hash,那么为什么在 99.99% 的情况下都使用的是 B+tree索 ...
- Numpy实现简单BP神经网络识别手写数字
本文将用Numpy实现简单BP神经网络完成对手写数字图片的识别,数据集为42000张带标签的28x28像素手写数字图像.在计算机完成对手写数字图片的识别过程中,代表图片的28x28=764个像素的特征 ...
- 【漏洞复现】CVE-2022–21661 WordPress核心框架WP_Query SQL注入漏洞原理分析与复现
影响版本 wordpress < 5.8.3 分析 参考:https://blog.csdn.net/qq_46717339/article/details/122431779 在 5.8.3 ...
- Android官方文档翻译 九 2.2Adding Action Buttons
Adding Action Buttons 增加动作按钮 This lesson teaches you to 这节课教给你 Specify the Actions in XML 在XML中指定动作 ...
- openSUSE修改grub来修复对win8的引导
前言:继上一次安装试用各版本linux发行版后,由于做项目将机器纯windows了一把,现在又想安回centos,各种挫折折腾两天玩残一个u盘日,其中包括自己本本的原装系统也崩了,各种泪奔,下面记录一 ...
- ubuntu输入正确密码重新跳到登录界面
原因一:/etc/profile或者/etc/enviroment 配置错误 (很多开发人员在配置完java环境之后容易出现这种情况) 解决办法(已验证): 1,开机后在登录界面按下shift+c ...
- 扩容新生代为什么能够提高GC的效率
扩容新生代为什么能够提高GC的效率 该文章默认读者对JVM的基础有所了解 在学习JVM的时候,遇到了个人感觉比较有意思的问题,通过视频学习整理了一下. 先来上图: 大部分情况下,对象都会进入Eden区 ...