当我从从文件加载 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();
这是平行坐标停止刷的时候。