有一个SlickGrid 和 d3.js一起使用的很好的例子。我正在尝试根据自己的目的调整此可视化,但我发现该示例过于复杂而无法分解。这些示例似乎主导了有关该主题的所有搜索结果,因此我正在努力寻找更简单的学习方法。
我想采用标准图表(散点图/条形图/等),应用画笔并在数据表中显示过滤结果。我已经成功地使用 dc.js 来做到这一点(开箱即用),但我的实际数据有数万行......使 SlickGrid 成为首选。
这是一个 jsFiddle 的链接,显示了我想要实现的目标。刷子可以识别哪些数据已被“刷”(为了外观而应用类更改),但我不知道如何将此数据的 ID 传递给 SlickGrid 以更新网格。在 jsFiddle 中,我尝试使用 gridUpdate(d),就像原来的平行坐标示例一样......没有成功。
svg.append("g")
.attr("class", "brush")
.call(d3.svg.brush().x(x).y(y)
.on("brushstart", brushstart)
.on("brush", brushmove)
.on("brushend", brushend));
function brushmove() {
var e = d3.event.target.extent();
rectData.classed("selected", function(d, i) {
if ( e[1][1] >= d.id && e[0][1] <= d.id && x(e[0][0]) <= x(d.Date) && x(e[1][0]) >= x(d.Date) )
{ gridUpdate(d); return true; }
else
{ return false; };
});
我已经尝试了很多次迭代,但我不太清楚 dataView 想要什么作为输入......
function gridUpdate(data) {
dataView.beginUpdate();
dataView.setItems(data);
dataView.endUpdate();
};
任何帮助将不胜感激,我一直在努力解决 SlickGrid 上的文档问题,终于到了需要寻求帮助的地步!