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

数据可视化-D3.js框架:「06] 根据数据更改样式

路条编程 2021-10-25
486



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

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

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

根据数据更改样式


D3 是关于可视化和展示数据的。如果我们期望基于数据来改变元素的样式,我们可以在 style() 方法中使用回调函数为不同元素改变样式。


例如,我们想将值小于 20 的数据点设置为蓝色,其余设置为红色。我们可以在 style() 方法中使用包含条件逻辑的回调函数。回调函数以 d 作为参数来表示一个数据点:


selection.style("color", (d) => {
/* Logic that returns the color based on a condition */
});


style() 方法不仅仅可以设置 color——它也适用于其他 CSS 属性。


下面代码中添加 style() 方法,根据条件设置 h2 元素的 color 属性。写一个回调函数,如果值小于 20 返回 "red",否则返回 "green"。


提示:我们可以使用 if-else 语句或者三目操作符。


完整代码如下所示:


<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"))
.style("color", (d) => {
if (d < 20){
return 'red'
}
else {
return 'green'
}
})
</script>
</body>


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

评论