冒着问一个愚蠢问题的风险,为什么d3.box
(代码和演示)中的每个箱线图都放在自己的 svg 元素中?(更一般地说,放置在它自己的容器元素中。)或者换一种说法,为什么d3.box
只渲染图表的一个组件,而不是图表的所有组件?(假设每个箱线图可能共享一个共同的 y 轴。)
在此先感谢您的任何建议。我敢肯定这有一个合理的理由。我只是不清楚!
从技术上讲,没有理由将所有内容都放入自己的 SVG 中。我不知道为什么在示例中这样做,但通常您会将所有内容都放在一个 SVG 中,并使用svg:g
元素对元素进行分组。
大多数d3
组件通常只做一件事的原因是更容易组合它们。例如,如果d3.box
渲染x
和y
轴(或仅其中一个),则必须为不需要轴、不同轴布局或实施者设计方式未涵盖的任何其他人提供选项。
如果您正在寻找更高级的东西来处理所有事情,请查看nvd3.js。