我正在 d3 中使用包含超过 39000 行的数据表,并且我不想一次直观地表示所有项目。这就是我目前所拥有的:
var impt = d3.csv("Data/prisoncsv8.csv", function(data, i) {
return {
//more data here in the following format
"id": i,
"stage": 1,
"columntitle": data.columntitle
}
}).then(function(data, i) {
svg.selectAll('circle')
.data(data)
.join('circle')
.attr('r', 1)
.attr('fill', 'gray')
.attr('cx',function(dat) {
return Math.random()*500
})
.attr('cy', function(dat) {
return Math.random()*500
})
})
我希望能够将开始和结束索引指定为变量,并且只映射那些行。
我已经尝试过对数据进行 .slice 之类的操作,但这当然不起作用,因为 function(data){} 一次只能处理一行。
Thanks.
注意d3.csv() https://github.com/d3/d3-fetch#csv内部使用d3.csvParse()
——它本身只是一个很小的包装d3.dsvParse() https://github.com/d3/d3-fetch#dsv- 用于解析所获取文件的行。关于后一种方法的文档已经为您介绍了:
如果返回值为 null 或未定义,则跳过该行并将从返回的数组中省略dsv.解析;否则,返回值定义相应的行对象。
对于您的代码,这可能是以下几行:
var impt = d3.csv("Data/prisoncsv8.csv", function(data, i) {
return i < datastart || i > dataend
? null // Skip lines outside the range [datastart, dataend].
: { // Normal conversion for all lines to included.
//more data here in the following format
"id": i,
"stage": 1,
"columntitle": data.columntitle
};
}).then(function(data, i) {
// ...
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)