有没有办法从服务器流式传输大数据集并使用 dc.js 以异步方式可视化数据?
对数据集进行分块,然后在它们到达时使用这些块更新客户端上的可视化。
喜欢这个页面: http://vcf.iobio.io/?vcf=http: //s3.amazonaws.com/vcf.files/ExAC.r0.2.sites.vep.vcf.gz&species=Human&build=GRCh37
有没有办法从服务器流式传输大数据集并使用 dc.js 以异步方式可视化数据?
对数据集进行分块,然后在它们到达时使用这些块更新客户端上的可视化。
喜欢这个页面: http://vcf.iobio.io/?vcf=http: //s3.amazonaws.com/vcf.files/ExAC.r0.2.sites.vep.vcf.gz&species=Human&build=GRCh37
我认为您需要做的就是设置所有图表,然后设置一个循环间隔计时器来获取块并调用crossfilter.add然后dc.redrawAll():
var cf = crossfilter([]); // start with no data
// set up dimensions, groups, and charts, then ...
window.setInterval(function() {
d3.csv(/* your data source with chunk parameters */, function(error, data) {
data.forEach(function(d) {
// preprocess data
});
cf.add(data);
dc.redrawAll();
});
}, 5000); // or choose an appropriate interval for processing your chunks
可能有一种更智能的方式来链接请求,以便始终有一个 ajax 请求在运行,并且浏览器正在处理一大块数据。(可能在最后一个请求到达后立即开始下一个请求。)
但我认为这是最好的入门方式,因为它很容易理解。
我不知道有一个带有 restful 块 API 的公共数据源,但是如果你知道一个并且可以创建一个小提琴示例,我相信一个示例会帮助很多人。