我试图了解转换在 D3 中是如何工作的,但我想我没有明白。
比例会改变 SVG 对象的大小吗?意思是如果我给出一个大数字,对象的大小会看起来更大?翻译是否将对象从一个地方移动到不同的地方?我试过了,但它并没有像我想象的那样工作。
你能向我解释一下它应该如何工作吗?
Scott Murray 对此[1]写了一个很好的解释。例如,对于代码片段:
svg.append("g")
.attr("class", "axis")
.attr("transform", "translate(0," + h + ")")
.call(xAxis);
他解释使用以下内容:
请注意,我们使用 attr() 将变换作为 g 的属性应用。SVG 变换非常强大,可以接受多种不同类型的变换定义,包括缩放和旋转。但是我们在这里保持简单,只有一个平移变换,它只是将整个 g 组上下推了一些。
平移变换用 translate(x,y) 的简单语法指定,其中 x 和 y 显然是平移元素的水平和垂直像素数。
[1]:来自第 8 章,“清理” Web 的交互式数据可视化,它曾经免费提供,现在需要付费。
我意识到这个问题已经相当老了,但想分享一个关于组变换、路径/形状和相对定位的快速演示,供其他在这里找到更多信息的人使用: