当前位置: 首页 > news >正文

【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(上)

当前内容所在位置

  • 第一部分 D3.js 基础知识
    • 第一章 D3.js 简介
      • 1.1 何为 D3.js?
      • 1.2 D3 生态系统——入门须知
        • 1.2.1 HTML 与 DOM
        • 1.2.2 SVG - 可缩放矢量图形
        • 1.2.3 Canvas 与 WebGL
        • 1.2.4 CSS
        • 1.2.5 JavaScript
        • 1.2.6 Node 与 JavaScript 框架
        • 1.2.7 Observable 记事本
      • 1.3 数据可视化最佳实践(上) ✔️
      • 1.3 数据可视化最佳实践(下)
      • 1.4 本章小结

1.3 数据可视化最佳实践

数据可视化从未像今天这样受大众欢迎。内容详实的地图、精心设计的图表、以及系统和数据集的复杂呈现形式不仅仅出现在工作场所,也在我们的娱乐和日常生活中频频露脸。随着数据可视化的日渐普及,各种数据可视化工具库也大量涌现;同时,聚焦提升可读性和理解力的美学规则也在不断丰富和完善。无论是普通大众、专家学者还是决策人员,这些可视化的受众群体已经日渐熟悉了曾一度被认为是极其抽象与复杂的数据趋势呈现。这使得 D3 等工具库不仅广受数据科学家们的青睐,也赢得了记者、艺术家、学者、IT 专业人士甚至数据可视化爱好者们的一致好评。

数据可视化如此丰富的配置选项似乎让人应接不暇,再加上这些流图(streamgraph)、树状图(treemap)或直方图(histogram)的数据集相对容易修改,往往会让人误以为信息可视化更看重设计风格而非数据的实质性内容。幸运的是,业内对于不同的数据类型应该使用哪些图表和方法已经有了十分明确的规定。本书并不打算涵盖数据可视化的所有最佳实践,但会重点介绍其中的部分内容。虽然开发人员使用 D3 是为了给色彩和布局的使用来一次技术革新,但大多数人还是希望这些创建出的数据可视化效果能给实际问题提供实实在在的技术支撑。

在构建您的第一个可视化项目时,如果遇到疑问,记得化繁就简——通常情况下,直方图的展示效果往往比小提琴图更好;直接展示分层网络布局(如树枝图)也比力导向布局的效果更佳。视觉效果越复杂的数据呈现方式往往越能激发观众的兴奋点,但稍有不慎也会导致其过分关注图形的美学特质而非数据本身。打造炫酷而惊艳众人的可视化效果本无可厚非;但也应时刻谨记:任何数据可视化作品的首要目标都是讲好某个故事。询问周围的人们是否理解了你的可视化用意,以及他们是怎样解读的,这是至关重要的一步。需要给他们解释吗?他们能从与产品交互中得出什么结论?故事讲完了吗?

不过,要正确部署信息可视化项目,您应该有所取舍,要对数据和受众有充分的了解。D3 赋予开发者极大的灵活性,但正所谓“能力越大,责任越大”。知道哪些图表更适合表现哪些类型的数据固然是好事,但更重要的是要牢记,如果不从知情的角度精心设计,数据可视化很可能也会带来误导信息。如果要自行设计某款可视化图表,那么充分了解数据可视化的最佳实践则是构建过程中必不可少的一环。最好的学习方法就是查阅知名设计师和信息可视化从业者的优秀作品。虽然所有的相关著作都在探讨这些话题,但其中有几本书我们认为很有参考价值,可以帮助您掌握这些基础知识。以下书目绝不是学习数据可视化的唯一教材,但可以作为很好的切入点:

  • Better Data Visualizations》(Columbia University Press,2021 年),作者:Jonathan Schwabish(中译本《更好的数据可视化指南》,电子工业出版社)
  • The Functional Art》(New Riders,2013 年)《The Truthful Art》(New Riders,2016 年) 以及《How Charts Lie》(W.W. Norton,2020 年),作者:Alberto Cairo(第一本中译本《不只是美:信息图表设计原理与经典案例》,第三本中译本《数据可视化陷阱》,作者:阿尔贝托·开罗)
  • Data Visualisation A Handbook for Data Driven Design》(SAGE,2019 年),作者:Andy Kirk
  • The Visual Display of Quantitative Information Envisioning Information》(Graphics Press,2001 年),作者:Edward Tufte
  • Designing for Information》(Rockport,2013 年),作者:Isabel Meirelles
  • Pattern Recognition》(已发表论文,2008 年,罗德岛设计学院),作者:Christian Swinehart
  • Visualization Analysis and Design》(A K Peters,2014 年),作者:Tamara Munzner

在阅读数据可视化方面的文献资料时,有一点需要牢记:这些文献通常侧重于静态图表。有了 D3,您就可以制作出交互式的动态可视化效果。设计一些交互不仅能使可视化作品可读性更强,还能显著提高其吸引力。即使只有几个鼠标事件,那些感觉自己是在主动探索而非单纯阅读的用户也可能会发现可视化的内容比阅读静态内容更引人注目、也更令人难忘。但增加这样的复杂性需要对用户体验有所了解。本书将在第 7 章中予以详细介绍。

第一章正文内容到这里就全部结束了!虽然还没能用上 D3,但您现在也应该掌握了入门所需的全部基础知识。如果仍不确定该在可视化项目中使用哪种 SVG 元素,或者对于 JavaScript 如何操作数据还不太熟悉,请继续阅读并回顾本章相关内容。从下一章开始,我们将着手创建 D3 可视化项目。

译注
本篇 1.3 小节正文部分虽然到此结束,但随后是一篇作者与可视化设计师及开发者做的人物专访记录,篇幅较长,故此单独整理到下一篇,敬请期待。
另外,本小节作者提到的很多可视化经典著作很遗憾都没有中译本,有需要的读者可以根据出版社信息及发行年份,参阅相应的英文原版。

相关文章:

【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(上)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事本 1…...

如何在Linux上如何配置虚拟主机

在Linux上配置虚拟主机可以通过使用Apache HTTP服务器来实现。Apache是一个开源的跨平台的Web服务器软件,可以在多种操作系统上运行并支持虚拟主机的配置。 以下是在Linux上配置虚拟主机的步骤: 安装Apache HTTP服务器 在终端中运行以下命令来安装Apache…...

c语言alpha-beta剪枝六子棋

c语言Alpha-Beta剪枝算法六子棋[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2i5w8kc1-1720756528545)(https://i-blog.csdnimg.cn/direct/464b9db7d6384a63ab8c3213efff0e99.png)] 1.介绍 Alpha-Beta剪枝算法是一种用于优化博弈树搜索的算法&…...

基于PyTorch深度学习实践技术应用

近年来,Python语言由于其开源、简单等特点,受到了广大程序开发者的偏爱,丰富的函数库使得其在各行各业中得到了广泛的应用。伴随着新一轮人工智能(尤其是深度学习)的快速发展,许多深度学习框架应运而生&…...

数据湖仓一体(五)安装spark

上传安装包到/opt/software目录并解压 [bigdatanode106 software]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/services/ 重命名文件 [bigdatanode106 services]$ mv spark-3.3.1-bin-hadoop3 spark-3.3.1 配置环境变量 [bigdatanode106 ~]$ sudo vim /etc/profile…...

项目收获总结--本地缓存方案选型及使用缓存的坑

本地缓存方案选型及使用缓存的坑 一、摘要二、本地缓存三、本地缓存实现方案3.1 自己编程实现一个缓存3.2 基于 Guava Cache 实现本地缓存3.3 基于 Caffeine 实现本地缓存3.4 基于 Encache 实现本地缓存3.5 小结 四、使用缓存的坑4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩4.4 数据…...

java使用poi-tl模版引擎导出word之if判断条件的使用

文章目录 模版中if语句条件的使用1.数据为False或空集合2.非False或非空集合 模版中if语句条件的使用 如果区块对的值是 null 、false 或者空的集合,位于区块中的所有文档元素将不会显示,这就等同于if语句的条件为 false。语法示例:{{?stat…...

扩散的魔法:如何打造未来生物打印?

生物打印技术正在快速发展,它允许我们将生物材料、细胞和生长因子等生物活性成分精确地打印成具有特定形状和功能的结构。而扩散现象在生物打印中扮演着至关重要的角色,它影响着打印结构的特性、机械性能、生物功能和形态。为了更好地利用扩散现象&#…...

Bag of mice(概率dp)

https://www.luogu.com.cn/problem/CF148D 思路: 概率dp,设f[a][b]为白鼠为a个,黑鼠为b个时,赢的期望。 f[i][0]1; 1.当先手取到白鼠时 a/(ab); 2.当先手未取到白鼠,先手要向赢,后手也不能取到白鼠&am…...

Python的基础语法——持续更新版

1、type查看数据类型 # 直接输出结果 print(type("Hello")) # 先用变量存储 string_type type("Hello") print(string_type) 2、 类型转化 任何类型可以转化为字符串,但字符串不可以随意转化,要求字符串类内容都是数字 # 类型…...

百度智能云将大模型引入网络故障定位的智能运维实践

物理网络中,某个设备发生故障,可能会引起一系列指标异常的告警。如何在短时间内从这些告警信息中找到真正的故障原因,犹如大海捞针,对于运维团队是一件很有挑战的事情。 在长期的物理网络运维工作建设中,百度智能云通…...

晚上定时编译android系统

1、问题 可能偶然想晚上定时编译android系统 2、解决 at.sh #!/bin/sh# at -f at.sh now1min # at -lset -e set -xecho $SHELLecho at build begin /bin/date >> at_build.log/bin/bash -c source build/envsetup.sh >> at_build.log 2>&1; lunch xxx-us…...

轻薄鼠标的硬核选购攻略,很多人都在“高性价比”鼠标上栽跟头了

轻薄款设计的鼠标是目前鼠标市场的出货大头, 也是价格最卷的一类鼠标。 比游戏鼠标或许更卷一些。 这和当前的移动办公趋势关系很大。 这类鼠标主要跟笔记本和iPad搭配。 核心的使用场景是办公。 因此轻薄和静音是这类鼠标的核心卖点。 同时用户并不愿意付出太…...

Python制作签到系统

import datetime sign_in_records {} def sign_in(username): today datetime.date.today() if username not in sign_in_records: sign_in_records[username] [] sign_in_records[username].append(today) print(f"{username} 签到成功&#…...

面试题007-Java-Spring

面试题007-Java-Spring 目录 面试题007-Java-Spring题目自测题目答案1. 简单介绍一下Spring?2. Spring有哪些模块?3. 什么是Spring IoC ?4. 什么是依赖注入?有哪几种方式可以进行依赖注入?5. 什么是Spring AOP ?6. 什…...

后端之路——登录校验前言(Cookie\ Session\ JWT令牌)

前言:Servlet 【登录校验】这个功能技术的基础是【会话技术】,那么在讲【会话技术】的时候必然要谈到【Cookie】和【Session】这两个东西,那么在这之前必须要先讲一下一个很重要但是很多人都会忽略的一个知识点:【Servlet】 什么是…...

【蓄势·致远】 同为科技(TOWE)2024年年中会议

2024年7月2日-8日,同为科技(TOWE)召开2024年年中工作会议。会议回顾上半年总体工作情况,分析研判发展形势,规划部署下半年工作。 为期一周的工作会议,由同为科技(TOWE)创始人、董事长…...

通过git将文件push到github 远程仓库

1.先git clone 代码地址 git clone htttp://github.com/用户名/test.git 2. 添加文件 例如:touch 1.txt 3.将文件添加到暂存区 git add 1.txt 4.提交 git commit -m "commit 1.txt" 5.与远程仓库建立关联 git remote add 远程仓库名 远程仓库…...

如何判断服务器是否被攻击

如何判断服务器是否被攻击 一、异常流量模式 一种判断服务器是否遭到攻击的方法是监控网络流量。异常的流量模式,例如流量突然剧增或减少,都可能是攻击的迹象。通常,大量的入站流量表明分布式拒绝服务(DDoS)攻击的可能…...

泽众一站式性能测试平台P-One监控指标的意义

在当今数字化和信息化高度发展的时代,企业把保障系统稳定运行、优化业务流程和提升用户体验摆在首要位置。然而,在现如今复杂的分布式系统中,各个组件和服务之间的交互频繁且紧密,当系统出现性能瓶颈时,传统的监测手段…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

uniapp中使用aixos 报错

问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​:下载安装 ​​De…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...