我对 d3 很满意,但只是开始了解过渡/动画。我正在尝试以M Bostock 的 Marey 火车图表为基础,并为孟买西部铁路系统制作交互式图表。块页面在这里。就添加线路提示文本、根据区域对站名进行颜色编码等方面,我做了一些细微的改变。
孟买西部火车系统有快车和慢车。要求是,根据用户输入,图表要么显示所有列车,要么仅显示快速列车。快速列车是黑色的。csv 中的“类型”列指示火车是快 (F) 还是慢 (S)。
我想不出适应过渡框架的最佳方式。到目前为止,我已将以下选项视为选项。
有两个单独的 csv 文件(一个用于所有,另一个用于快速)。在 d3.csv 函数之外有一个“点击”监听器,并在选择时调用适当的 d3.csv 加载器。这可能很粗糙而且不那么优雅
这里已经有一个过滤器,只选择 SF 列车。但是我如何根据点击侦听器仅合并 S 或两个 SF。
var train = svg.append("g") .attr("class", "train") .attr("clip-path", "url(#clip)") .selectAll("g") .data(trains.filter(function(d) { return /[SF]/.test(d.type); })) //.data(trains) .enter().append("g") .attr("class", function(d) { return d.type; });
欣赏是否有人可以帮助以适当而优雅的方式融入这种过渡
编辑:我知道现在,我已经在 SVG 容器之外包含了表单单选按钮,它将底部 X 轴从 SVG 容器中取出。一旦涵盖了过渡部分,我将参加