D3.js 与数据可视化

数据可视化工具简介

就像单反vs手机照相机一样,越复杂越强大。把数据可视化工具按照复杂程度排序,最右端是D3.js,它最强大,也最难学!

D3.js = a JavaScript library

D3.js ≠ a dataviz library

但是,都是底层代码,不直接面向用户,比如没有: boxplot() or scatterplot() 直接出图的函数。

它提供的是辅助函数,核心是:你要手动绘图。

  • 遍历数据,计算X和Y位置,画出每个点;
  • 绘制X轴:线 + tick + label,同理Y轴;
  • 添加标题: 使用 html p标签
  • 需要 tooltip? 需要更多代码

D3.js不直接绘图,但是提供了强大的工具:

  • scale() 计算圆圈位置
  • ticks() 找到轴上刻度位置
  • ...

这里提供一个交互式沙箱,最简单的散点图:https://www.react-graph-gallery.com/scatter-plot#circles

D3.js = powerful, but hard

自己手工构建所有东西 - 包括交互。而不局限于:如果这个库有这个选项。

缺点?需要花很多时间学习。所有都自己写很强大,但对能力要求也高。

这是一个小项目,展示如何使用D3创建自定义:https://www.react-graph-gallery.com/example/radar-chart-animation

直到现在,相对于D3,其他工具显得很局限,限制很多。

The web is split

很重要、很困惑的点:

  • 之前很长时间,人们用纯js构建网站,一切正常。
  • 但是最近15年,Facebook推出一个UI库叫React改变了一切!它解决了开发者很多头疼的问题,并成为了标准。
  • 而你使用React(或者 Vue,Svelte),D3中2/3不是必须的。

这决定着你怎么学D3。

如果按照过时教程,你将花很多时间学习以后再也用不到的内容。

  • 未完待续 ...
相关推荐
微三云 - 廖会灵 (私域系统开发)1 分钟前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
学逆向的26 分钟前
C 数据溢出与精度丢失
c语言·开发语言·网络安全
有味道的男人33 分钟前
搜好货平台关键词商品搜索接口:分页容错与商品数据轻量化提取方案
服务器·前端·javascript
霸道流氓气质1 小时前
AgentFlow 入门与实战:Task-Based 并发、EWMA 动态调度与四道门禁的 Java 生产级编排
java·开发语言
释厄6232 小时前
错误无误公理——错误正确本同源都迭代定律——逆转有价值
android·开发语言·kotlin
2601_962885722 小时前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python
临床数据科学和人工智能兴趣组2 小时前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
蜗牛互联网2 小时前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
SEO_juper3 小时前
给网页做可引用性评分:判断内容够不够让 AI 引用(GEO 工具,附代码)
开发语言·人工智能·爬虫·python·seo·独立站
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 产品定位、功能模块与客户端原型解读
java·开发语言·交友