
D3 获取输入数据并将其映射为该数据的可视表示。它支持多种不同的数据格式。D3 允许您将数据绑定(或附加)到文档对象模型(DOM)。您可以使用带有 D3 内置方法的 HTML 或 SVG 元素将数据转换为可视化。
D3 为您提供了对数据表示的大量控制。本课程将介绍 D3 库的基本功能以及如何使用 D3 库创建可视化效果。
给 Circle 元素添加属性
上篇文章我们为 dataset 中的每个点都创建了 circle 元素,并将它们添加到 SVG 画布上。但是 D3 需要更多关于位置和 circle 大小的信息来正确的显示它们。
在 SVG 中 circle 有三个主要的属性。cx 和 cy 属性是坐标,它们告诉 D3 将图形的中心放在 SVG 画布的何处。半径( r 属性)给出 circle 的大小。
就像 rect 的 y 坐标,circle 的 cy 属性是从 SVG 画布的顶端开始测量的,而不是从底端。
所有的属性都可以用回调函数来动态设值。记住,所有串联在 data(dataset) 后面的方法为 dataset 中的每个对象都运行一次。回调函数中的 d 参数指在 dataset 中的当前对象,对每个点来说都是一个数组。就像 d[0],我们可以使用方括号的方式来访问数组中的值。
今天的练习我们为 circle 元素添加 cx、cy、r 属性。cx 的值应该是 dataset 中每个对象的数组的第一个数,cy 的值应该根据数据中的第二个数,但是要确保正向显示图表而不是倒转。所有圆圈的 r 的值应该为 5。
完整代码如下所示:
<body><script>const dataset = [[ 34, 78 ],[ 109, 280 ],[ 310, 120 ],[ 79, 411 ],[ 420, 220 ],[ 233, 145 ],[ 333, 96 ],[ 222, 333 ],[ 78, 320 ],[ 21, 123 ]];const w = 500;const h = 500;const svg = d3.select("body").append("svg").attr("width", w).attr("height", h);svg.selectAll("circle").data(dataset).enter().append("circle").attr("cx", (d) => d[0]).attr("cy", (d) => h - d[1]).attr("r", 5)</script></body>
如果想查看运行效果,请点击文章原文查看。
文章转载自路条编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




