当我从文件中加载json数据切换到使用jquery预加载时,我的D3.js并行坐标上的刷子停止工作。我这样做是为了在将数据加载到并行坐标之前对数据应用一些过滤器。
平行坐标仍在渲染,但我无法使用刷牙。当我这样做时,它返回一个空白结果(没有选择任何东西)。
我在这里创建了平行坐标:
var pc = d3.parcoords({
dimensionTitles: {
nplay_video: "video plays",
final_cc_cname_DI: "country",
LoE_DI: "education level",
nevents: "# of events",
nforum_posts: "# of forums posts",
nchapters: "# of chapters",
ndays_act: "# days active"
}
})('#example')
并加载数据
function refreshCoordinates(data){
// generate the parallel-coordinates
pc.data(data)
.ticks(4)
.mode("queue")
.color(color)
.composite("darker")
.alpha(0.15)
.render()
.dimensions(['LoE_DI','ndays_act', 'nchapters', 'nplay_video', 'nevents', 'nforum_posts', 'grade', 'certified'])
.createAxes()
.brushMode("1D-axes")
.interactive()
.reorderable();
}
使用jquery加载,过滤数据,并在用户选择不同属性时更新。除了刷牙之外的一切似乎都很好。我对D3.js很陌生,所以我希望我只是犯了一个愚蠢的错误。谢谢!
编辑:如果我从json文件加载,那么刷子工作。当我更新数据时,我将函数调用为...
pc.data(data).render().updateAxes();
这是平行坐标停止刷牙的时候。