FinOps有望降低企业50%+的云成本! 了解详情
写点什么

2019 年最好用的 JavaScript 图表库

  • 2019-08-04
  • 本文字数:2915 字

    阅读完需:约 10 分钟

2019年最好用的JavaScript图表库

大数据时代,收集和使用数据的需求正在爆发式增长,数据可视化也变得愈加重要。开发人员在想方设法将不同数据库中的记录整合到仪表板和漂亮的图表中,向人们快速直观地展示信息。


在过去十年中数据可视化技术不断改进,结果涌现了很多高水平的图表库。


21 世纪初期,人们使用服务端图像位图来生成图表。那时像 Silverlight 和 Flash 这样的插件提供了丰富的交互式图表体验,代价是减少电池寿命、拖慢下载速度并耗费更多系统资源。


移动设备兴起之后,移动平台不再支持插件并开始转向开放客户端技术,这些技术可以在任何平台上运行,成为了开发人员的首选。同时,触摸手势缩放和非常高分辨率的屏幕开始流行,使得无关分辨率的矢量图表广受欢迎。


随之而来的就是数据可视化的时代,SVG 可扩展矢量图像和 JavaScript 成为主角。今天的图表技术可支持所有浏览器平台,支持交互性和动画,并且不需要特殊的插件。这些图表在高分辨率设备中也有很好的显示效果。我们可以在 JS 开发中使用许多 JavaScript 图表库实现这些目标。


市面上有很多 JavaScript 图表库,本文则列出了其中的几款佼佼者,可以用在你的新项目中。


以下就是 2019 年的顶级 Javascript 图表库名单。

D3.js


D3.js是一个图形 JavaScript 库,功能众多,十分强大。你可以用它对文档做数据驱动的转换,然后将任意数据绑定到 DOM 上。


D3 是非常优秀的图表库。它有一些较小的技术模块,如颜色、轴、轮廓、层次结构、多边形、缓动等。这也意味着你需要学习很多知识才能用好它,上手并不容易。


即使用它创建简单的图表也可能需要复杂的步骤。你需要明确定义包含图表项和轴在内的所有元素。它提供了一些示例,教你如何使用 CSS 来设置图表元素的样式。开发者无法自动应用基于图表的功能。


如果你想从零开始设计复杂的图表,完全按照自己的想法控制所有元素,那么这个库就是你的首选。但如果时间紧迫,从头开始解决数据可视化项目需求可能就不是什么好主意了。


作为图表库来说,D3.js 可以充当构建块。开发者可以用 D3 与 NVD3 一类的方案配合工作。这个图表库完全免费并开源。


Highcharts


Highcharts是市面流行的 JavaScript 图表库之一,并被许多大公司采用。为了提供对 IE6 到 IE8 的兼容性,它先使用 SVG 然后转向 VML 来生成图表。它的示例图表带有一些很棒的功能,但看起来不怎么吸引人。它的文档里有很多 API 文档教程和相关主题。


它的 API 易于使用,开发者可以使用配置选项来开发图表。对于个人和非商业用途,Highcharts 可免费使用;证券行业等用途需要商业许可,而甘特图和地图图表则需要单独的许可证。


Chart.js


Chart.js是一个开源 JavaScript 库,支持 8 种类型的图表。它只有 60kb,是一个非常小的 JS 库。它支持的图表类型包括雷达、内联图表、饼图、条形图、散点图、面积图、气泡和混合等。它还支持时间序列。在呈现层面,它使用 canvas 元素并能响应窗口大小调整缩放比率。它对 IE9 向后兼容。要兼容 IE7 的话也可以使用 Polyfills。


初次使用它的示例时还能看到现代感的初始动画。实时添加数据点或序列时有平滑的动画效果。你可以调用 update()函数来修改图表选项并重绘图表。


在它的网站中没有展示示例源代码,但可以在 GitHub 仓库中找到。它的 API 简洁直观。用户使用配置选项来创建和修改图表。它的文档内容翔实,附带代码片段和属性 API 的教程。


这个库可免费用于商业和个人用途。它是开源项目。但对于更高级别的需求来说,它提供的图表类型可能有点少。


amCharts


amCharts已经推出了第 4 版,历史也挺长了。此版本支持 SVG 动画引擎,可帮助开发人员创建电影级场景。


它的示例图表非常漂亮,大多数示例都提供了滑块 UI,还附带许多调节器可以实时调整图表的变量。它的文档包括完整的 API 属性描述和许多教程。它提供了一个声明性 API 来创建图表,与基于配置的方法略有不同。它有很好的代码自动完成功能,但在配置图表时需要的代码略多。amCharts 的水印版图表是免费的,去掉水印需要付费。


谷歌图表


谷歌图表功能强大,易于使用。其示例图表简洁易读。可以在它的图表库和扩展库中找到许多图表类型。通过层叠菜单可以查看更多图表类型。


每种图表类型都有附带动态实例和很容易看懂的专门教程。这些教程附带 API 列表,并包含相关功能的代码。它为新人提供了非常愉快的入门体验。。


用户可以使用配置选项对象来自定义图表。DataTable 类用来填充数据集,也可以用在所有图表里。每种图表类型都带有以独特方式列出的选项和对应的教程。可选项很多,适用于不同类型,而属性命名是标准化的。


谷歌图表可以免费使用,但也有一些局限。它是一个 Web 服务,不能在本地托管。谷歌还退役了很多 API,所以它不适合用在关键项目中。


ZingChart


ZingChart中有许多图表类型,能与 react、angular 等框架集成。它有一系列强大的功能和许多自定义选项。


它的示例图表有许多样式主题,其中一些看着很不错。还有许多选项可以用来添加样式。示例图表没有覆盖它支持的所有图表类型。


它的文档附带了许多功能教程,覆盖了所有类型的图表和全部 API。ZingChart 使用配置选项自定义图表。示例中有很多属性设置,如字体样式等。但这些带有属性设置的示例可能会让用户糊涂,不知道图表到底需要哪些设置。


ZingChart 的水印版可以免费使用。付费版没有水印。


FushionCharts


FusionCharts 最开始是基于 Flash 的图表插件,有着很长的历史。它是一个健壮的图表可视化库,提供对现代浏览器的支持,支持包括 JavaScript、JSON 和 XML 在内的许多数据格式,还兼容 IE6。它还支持许多服务端编程语言和 JavaScript 框架。


它的图表库附带了许多看上去简洁大方的示例。它的文档带有许多良好的 API 描述,而且每种图表类型都有示例。用户可以通过任务和图表功能分组配置属性。


用户使用基于配置的选项创建图表,用起来非常简单。深入研究 API 时会发现属性列表变得很长。showAlternateHGridColor、chartLeftMargin 等配置属性很好理解。它的代码自动完成功能还有改进的空间。


FusionCharts 的水印版可供个人免费使用。商业和非水印版本需要付费。


Flot


Flot用法简单、外观漂亮,交互功能丰富,是最优秀的纯 JavaScript 绘图库。它有效兼容所有新式浏览器,包括 Internet Explorer 6 +、Chrome、Firefox 2 +、Safari 3+和 Opera 9.5+等。它是最流行、历史最长的图表库。Flot 支持线、点、填充区域、条形以及它们的各种组合。


Flot 的工作机制是创建一个可以放入图表的占位符 div。


Sigmajs


这款产品可以用来创建一些漂亮的图形来在 Web 上显示网络,并在大型 Web 应用中展示简单的交互式网络;这种交互式网络具有动态探索功能。无论对初学者还是高级用户来说它都很好用。


它配备了一些令人兴奋的功能,如 Canvas 和 WebGL 渲染器,还有鼠标和触摸支持,帮助你制作更好的动态网络应用。


Sigmajs默认可配置,支持鼠标和触摸两种交互,并可以根据容器大小变化缩放显示。它还有自定义渲染,可以用一组工具和设置来定制网络的交互细节。


小结

JavaScript 图表库生态正在不断发展壮大。市面上能找到大量图表制作产品,可以满足多种多样的项目需求。大多数产品都提供了免费试用机会,方便用户评估。


英文原文:https://aglowiditsolutions.com/blog/top-javascript-chart-libraries/


2019-08-04 15:088765

评论 1 条评论

发布
用户头像
eCharts呢
2019-08-05 17:46
回复
没有更多了
发现更多内容

java软件培训班毕业后找工作吗

小谷哥

AH协议

穿过生命散发芬芳

12月月更 AH协议

第五届“强网”拟态防御国际精英挑战赛在南京举行

科技热闻

专科非科班怎么选择培训机构

小谷哥

学习大数据该怎么选择培训机构?

小谷哥

聊聊产品中的状态机设计

产品海豚湾

产品经理 产品设计 产品开发 需求分析 主业务流程梳理

【从零开始学爬虫】采集收视率排行数据

前嗅大数据

大数据 数据采集 爬虫软件 爬虫教程 数据采集教程

北京哪家web前端开发机构比较好?

小谷哥

5分钟带你彻底掌握async底层实现原理!

千锋IT教育

从vivo的创新方法论中,读懂高端突破的“因果”

脑极体

KCL 与其他 Kubernetes 配置管理工具的异同 - Kustomize 篇 [一个自研编程语言能做什么?(系列 2)]

Peefy

开发者 工具 编程语言 Kubernetes Serverless #DevOps

2021最强网易Java岗面试题,(实战篇)进大厂必备~不看后悔

钟奕礼

Java 程序员 java面试 java编程

ToB业务迎来连续增长,腾讯云的华丽转身

ToB行业头条

极光笔记 | 以静制动:行为触发营销助力用户转化

极光JIGUANG

营销 运营 消息推送 用户运营

零基础学web前端,哪些培训机构比较好

小谷哥

瓴羊Quick BI 填报组件让数据分析和可视化呈现轻而易举

对不起该用户已成仙‖

低代码实现探索(五十四)低代码的描述文本

零道云-混合式低代码平台

明道云联合契约锁共建人事场景电子签约解决方案

明道云

零代码平台在政府智慧城市领域的应用

明道云

跬智信息(Kyligence)荣登「甲子20」中国数据智能领域最具商业潜力科技企业榜

Kyligence

大数据 数据分析 数据智能 指标中台

openEuler 倡议建立 eBPF 软件发布标准

openEuler

开源 云原生 操作系统 内核 ebpf

chatGPT的爆火,是计算机行业这次真的“饱和”了?

千锋IT教育

漏洞挖掘之命令注入漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

通过WSL2运行GUI程序

DisonTangor

WSL2 GUI

架构实战 - 模块3作业

mm

学生管理系统架构 #架构实战营

2022-12-15:寻找用户推荐人。写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。 对于示例数据,结果为: +------+ | name | +------+ | Wil

福大大架构师每日一题

数据库· 福大大

互联网时代,云计算的 6 大特征

Finovy Cloud

云计算 云渲染

行业分析| 智慧头盔在快对讲上的应用与实践

anyRTC开发者

音视频 智能设备 视频通话 快对讲 智慧头盔

mysql转国产数据库Gbase 8s 常见函数脚本

@下一站

数据库 12月日更 12月月更 Gbase8s 国产软件

当打造一款极速湖分析产品时,我们在想些什么

StarRocks

数据湖 湖仓一体

可视化:数据可视化发展史

Data 探险实验室

数据分析 可视化 数据可视化

  • 需要帮助,请添加网站小助手,进入 InfoQ 技术交流群
2019年最好用的JavaScript图表库_语言 & 开发_Saurabh Barot_InfoQ精选文章