暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据可视化-D3.js框架:「04] 使用 D3 中的动态数据

路条编程 2021-10-23
616



这一系列课程将介绍D3.js 或 D3 代表数据驱动的文档。D3 是一个 JavaScript 库,用于在浏览器中创建动态和交互式数据可视化。它是为使用常见的 web 标准而构建的,即 HTML、CSS 和可伸缩矢量图形(SVG)。

D3 获取输入数据并将其映射为该数据的可视表示。它支持多种不同的数据格式。D3 允许您将数据绑定(或附加)到文档对象模型(DOM)。您可以使用带有 D3 内置方法的 HTML 或 SVG 元素将数据转换为可视化。

D3 为您提供了对数据表示的大量控制。本课程将介绍 D3 库的基本功能以及如何使用 D3 库创建可视化效果。

使用 D3 中的动态数据

最后两个练习涉及到使用 D3 的 data() 和 enter() 方法来动态展示数据。它们以数据集为参数,和 append() 方法一起使用,为数据集中的每一个元素对象创建一个 DOM 元素。

在之前的文章中,我们为 dataset 数组中的每一个对象创建了一个新的 h2 元素,但是它们的文本都是相同的 "新标题"。这是因为我们还没有使用和每个 h2 元素关联的数据。

text() 方法以字符串或者回调函数作为参数:

selection.text((d) => d)

上面这个例子中的参数 d 指关联数据集的一个对象。

以当前例子为例,第一个 h2 元素和 12 关联,第二个 h2 元素和 31 关联,第三个 h2 元素和 22 关联,以此类推。

改变 text() 方法使得每个 h2 元素显示 dataset 数组中的对应值加上一个空格和 "USD"。例如,第一个标题应该为 "12 USD"。

完整代码如下所示:

<body>
<script>
const dataset = [12, 31, 22, 17, 25, 18, 29, 14, 9];

d3.select("body").selectAll("h2")
.data(dataset)
.enter()
.append("h2")

.text((d) => d + ' USD');
</script>
</body>

今天就讲到这里,如果有问题需要咨询,大家可以直接留言或扫下方二维码关注公众号。也可以添加 happyzjp 微信受邀加入学习社群,我们会尽力为你解答。练习网站已经正式上线,大家可以登陆网站 http://www.icoderoad.com 进行文章中示例的练习。
文章转载自路条编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论