【D3.js in Action 3 精译】1.1.2 D3.js 的适用场景

news2024/11/25 7:17:38

译注
上一节中我们了解了 D3 诞生的技术背景——为了满足 Web 可访问数据的可视化需求。本节再来看看 D3.js 的适用场景是怎样的、在什么时候会考虑使用 D3.js。

1.1.2 D3.js 的适用场景

数据可视化领域正蓬勃发展,且备受青睐。过去十年间用于生成数据驱动图形的工具数量已呈现爆发式增长。一方面,我们有像 Microsoft Excel 这样的商业智能工具,它是一款常见的数据可视化入门级产品;还有像 Power BI 这样用于构建仪表盘的微软一站式解决方案;另一方面,数据科学家们经常利用 R 语言的 ggplot2 或 Python 中的 Matplotlib 来实现数据可视化效果。

而基于浏览器的拖拽式(point-and-click)数据可视化工具,如 Tableau、Flourish、Datawrapper 和 RAWGraphs 也已经成为主流,让您可以在投入最少技术储备的情况下创建出令人惊叹的作品。

最后,像 Highcharts、Chart.js 和 Plotly 等 JavaScript 库专门用于开发基于 Web 的交互式可视化效果。

上面列举的工具仅仅只是冰山一角,不一而足。

那么,在可视化工具的浩瀚海洋中,D3 又处于什么位置呢?我们又该在什么时候用、怎么用好它呢?应该说,尽管 D3 可以完全构建出上述工具库提供的任何图表,但它通常不是传统简单图表或探索阶段的首选工具。探索阶段考察的是最适合呈现当下数据的可视化类型。构建 D3 项目需要时间,而令 D3 真正大放异彩的,是复杂多变的、交互式的定制化项目环境。数据可视化远远不止创建折线图及散点图那么简单!虽然刚才提到的工具通常侧重于事先定义好的图表,但 D3 可以将数据绑定到任何图形元素,并像图 1.4 展示的乐谱那样,以独特的方式组合这些视觉元素来创建新的可视化效果。选择 D3 正是为了跳出思维定势,拥有更多自由思考的空间,不必受制于工具库所提供的开发能力。

图 1.4 D3 具备 SVG 和 Canvas 的绘图功
图 1.4 D3 具备 SVG 和 Canvas 的绘图功能,支持构建自定义可视化效果。该乐谱图由 Elijah Meeks 绘制

至于如何在数据可视化项目的范围内使用 D3,下面举例说明大致流程。首先是从现有数据集或手动收集的数据入手。在开始数据分析之前,通常会花费大量时间用于数据清洗、格式化等准备工作;而这正是 Python 和 R 语言的强项,借助它们往往可以发现潜藏的数据信息。Excel 由于对技术背景要求不高,也可以完成一些简单的数据整理与分析工作。您甚至可以通过 JavaScript 和 D3 提供的统计学方法(后续内容会讲解)进行基本的数据探索。

一旦数据分析开始进行,人们通常会创建一些原型(prototypes)来完善想要呈现的核心内容。借助 Tableau 和 RAWGraphs 可以让快速生成这些图表。这一步尤为重要,其间实现的效果往往无需过于花哨或精美。在原型设计阶段,大可不必耗费太多时间沉迷于自己的想法,有时甚至不得不忍痛割爱、反复推倒重来,直到找出最能突出数据核心主旨的可视化效果。网络图或许是个例外,遇到这样的项目通常直接使用 D3 就行了。

最后,一旦明确即将创建的可视化类型,如图 1.5 所示的桑基图(Sankey diagram),就可以用 D3 来编程了!现如今,代码的书写通常是在 React 或 Svelte 框架的单页应用(single-page applications,即 SPA)中实现的。
图 1.5 来自 Voilà 的获奖作品“打造未来可持续的包容性业务组合”

图 1.5 来自 Voilà 的获奖作品“打造未来可持续的包容性业务组合”(https://chezvoila.com/project/findevportfolio/).

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

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

相关文章

中小学劳技课程开展创意木工 传承非遗木工魅力

学生劳技课程,全称劳动技术课程,是一门旨在通过实践活动培养学生的劳动技能、创新思维、实践能力和社会责任感的基础教育课程。这门课程强调学生的参与和体验,让学生在动手实践中学习并掌握知识,提高解决问题的能力。 学生劳技课程…

Charles抓包工具系列文章(四)-- Rewrite 重写工具

一、背景 这是一款比Map Local/Remote 还强大的工具,更加灵活,体现在以下几点: 重写request报文重写response报文header 字段的增删改query param 字段的增删改重写 body 字段改写http 响应状态status重写host/url/path 从这也可以看出其强…

【链表经典算法OJ题】(2)

4.链表的中间节点 单链表相关经典算法OJ题4: 链表的中间结点 . - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problem…

计算机网络之入门

1.网络的发展 1.1计算机网络定义 计算机网络是以共享资源(硬件、软件和数据等)为目的而连接起来的、在协议控制下,由一台或多台计算机、若干台终端设备、数据传输设备等组成的系统之集合。 这些计算机系统应当具有独立自治的能力&#xff…

关于导入springcloud项目一些jar加载不进去的问题处理

IntelliJ IDEA的Maven项目有时候通过右边Maven Projects面板的package或者install命令打包的时候,会报错导致打包失败,这是由于这两个命令打包前默认会运行tests测试,若测试失败则打包失败。但是有时候我们打包的时候一些项目配置是针对生产环…

SpringCloud Alibaba Seata2.0基础入门与安装

官网地址:https://seata.apache.org/zh-cn/ GitHub下载地址:https://github.com/apache/incubator-seata/releases 本文这里下载的是seata2.0.0版本。 【1】概述 ① Seata是什么 Simple Extensible Autonomous Transaction Architecture&#xff0c…

【代码】c++几个常用的函数

Hello!大家好,我是学霸小羊,今天讲讲c函数库里面的几个基本函数。 1.sort() sort()是大名鼎鼎的排序函数,以前起码一两个循环的排序,用这个函数一行代码就可以解决。 格式: sort(数组名""开始下标&#…

iOS开发者模式自带弱网测试工具

弱网测试的思路 弱网功能测试:2G/3G/4G、高延时、高丢包 无网状态测试:断网功能测试、本地数据存储 用户体验关注:响应时间、页面呈现、超时文案、超时重连、安全及大流量风险 网络切换测试:WIFI → 4G/3G/2G → 网多状态切换…

高考填报志愿,为何要优先考虑个人兴趣 ?

随着高考成绩纷纷出炉,考生又要面对人生另外一个重要的选择,那便是填报志愿,这关系到自己能否进入满意的学校和专业。如果考生对上述两个方面都不满意,那高考目的就没有达到。既然填报志愿如此重要,考生和家长在选择的…

MFC案例:自制工具条(Toolbar)按钮的小程序

程序目标:在基于对话框的MFC项目中,自制三个 Toolbar 按钮(用颜色区分,分别为红、绿、蓝);程序运行时,单击红色按钮显示一个红色的填充椭圆;再单击绿色按钮则进行清屏;最…

【YOLO 系列】基于YOLO V8的密集场景下行人检测识别系统【python源码+Pyqt5界面+数据集+训练代码】

前言 在密集的城市环境中,行人检测对于公共安全、交通管理和智能监控具有重要意义。然而,传统的行人检测方法在面对密集场景时,常常因目标重叠和遮挡而难以准确识别。为了应对这一挑战,我们启动了这个项目,目的是利用…

江苏隆昌化工上线隆道平台 采购管理迎来全面升级

当前,传统产业与数字产业深度加速融合,大数据、云计算、人工智能等新技术推动产业深刻变革,能源化工行业迎来战略转型加速期。数字化转型已成为能源化工企业提升运营效率、控制运营成本、提高产品质量、打造竞争优势的强大引擎。为实现传统采…

OVS:网桥的状态:fail_mode模式

目录 1.创建一个普通的ovs网桥不做任何配置 2.检测fail_mode值,默认为空 3.创建netns并配置sto网桥的两个普通端口并配置IP信息 4.默认情况下的两个端口下挂两个虚拟机v3,v4天然通信-ping-ok 5.修改网桥的fail_mode为standalone,原来的通信没有影响 6.修改了…

java常用类(1)

目录 1.Object类 1.1 toString()方法 1.1.1重写toString()方法 2.1 equals()方法 2.1.1 的作用 2.1.2 equals()方法 2.Arrays类 2.1 equals()方法 2.2 copyOf()方法 2.3 fill()方法 2.4 sort()方法 1.Object类 在java中Object类是所有类的父类,如果一个类没有显示…

数据独立性-信息、数据、数据结构、数据独立性

一、引言 同人工管理数据和文件系统管理数据相比,数据库管理数据最主要的优点是数据独立性高。数据独立性是数据库领域中的一个常用术语和重要概念,包括数据的物理独立性和逻辑独立性 二、数据与数据结构 1、信息 在数据管理领域,数据与信…

排序之插入排序----直接插入排序和希尔排序(1)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 排序之插入排序----直接插入排序和希尔排序(1) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记,欢迎大家在评论区交流讨…

uni-app uni-data-picker级联选择器无法使用和清除选中的值

出现问题&#xff1a; 使用点击右边的叉号按钮无法清除已经选择的uni-data-picker值 解决办法&#xff1a; 在uni-app uni-data-picker使用中&#xff0c;要添加v-model&#xff0c;v-model在官网的示例中没有体现&#xff0c;但若不加则无法清除。 <uni-data-picker v-m…

从0搭建一个vue项目,不使用脚手架从html到vue

前言 从最开始学习web网页开始&#xff0c;搭建一个网页只需要创建一个html文件对其进行编写dom标签语言即可&#xff1b;后来分离了html&#xff0c;css和js&#xff0c;搭建一个网页开始需要文件夹&#xff0c;文件夹包含了这3类文件以及静态文件&#xff0c;图片&#xff0c…

2024年全新Studio One 6 .6.1新功能介绍及安装激活使用指南

​ 录制、制作、混音、掌握和表演所需的一切。Studio One 6 .6.1通过新的智能模板、直观的拖放工作流程、可定制的用户界面和强大的集成工具&#xff0c;让创作变得快速而轻松。 智能模板。快速启动。 快速启动录音、混音、掌握、节拍制作或简单地演奏虚拟乐器的基本工作流程—…

#04贪心法

要点&#xff1a; 贪心法的基本思想、基本要素与求解步骤&#xff1b; 贪心法的应用。 难点&#xff1a; 贪心法的最优子结构性质与贪心选择性质。 贪心法的基本思想 每个阶段的决策一旦做出就不可更改。不允许回溯。 并不从整体最优考虑&#xff0c;所作出的选择只是在某…