javascript - 如何在 d3 动态图表中移动标签的位置
问题描述
我可以使用下面的代码从 csv 文件中添加标签,但是 csv 每一行的文本是相互重叠的,你知道如何移动它以使其看起来更好吗?
svg.selectAll(".labels")
.data(data)
.enter().append("text")
.attr("transform", function(d) { return "translate(" + arc.centroid(d) + ")"; })
.attr("dy", ".70em")
.text(function(d) { return d.TrackName; })
.attr("fill", function(d, i) { return color(i); });
解决方案
当你对数据进行连接时,你可以访问datum
你已经在你的attr
函数中演示过的。但是,它还提供了一个index
您可以用作第二个参数的参数。
改变你的
.attr("dy", ".70em")
更像这样的东西。这样做是将 0.7 乘以每个项目的索引,生成它们的列表。您可能需要根据其外观调整数字。
.attr("dy", (d, i) => `${i * 0.7}em`);
推荐阅读
- amazon-web-services - 在 AWS 中使用打包程序构建 qcow2 映像
- shopware - shopware 6 中的电子邮件模板变量
- css - 在 CSS 网格中调整 textarea 的大小会改变网格布局
- java - 将 Unix 时间中的日期时间作为字节数组获取,Java 的大小为 8 个字节
- python - 我可以更改 Python 中的默认 __add__ 方法吗?
- python - 使用 Python 获取本地网络中登录用户的名称
- python - Python Pandas:创建包含日期范围的新列
- javascript - 如何使用 Node.js 将表单数据保存到本地 MongoDB?
- c++ - 如何在libtorch中将形状(n,k)的张量与形状(k)的张量堆叠?
- reactjs - 如何在材料ui自动完成组件(反应)上预先选择一个值?