Javascript 在D3.js中过滤CSV的多行,并在键盘输入时更新过滤器
我在过滤Javascript 在D3.js中过滤CSV的多行,并在键盘输入时更新过滤器,javascript,csv,svg,d3.js,Javascript,Csv,Svg,D3.js,我在过滤csv数据和更新D3.js中的一些SVG时遇到了一些问题 问题1 加载时,我想从csv中筛选出多行。 我成功地加载了数据并只过滤了一行。然后,我对多行尝试了类似的方法,但没有成功 d3.csv("sample-data.csv", function(data){ date = data.filter(function(row) { return row['YYYYMMDD'] == '20100901'; }) period = data.filter(func
csv
数据和更新D3.js
中的一些SVG
时遇到了一些问题
问题1
加载时,我想从csv中筛选出多行。
我成功地加载了数据并只过滤了一行。然后,我对多行尝试了类似的方法,但没有成功
d3.csv("sample-data.csv", function(data){
date = data.filter(function(row) {
return row['YYYYMMDD'] == '20100901';
})
period = data.filter(function(row){
for (var i = 1950; i < 2013; i++) {
return row['YYYYMMDD'] == (i +"0901");
}
});
createVis();
}
请注意,我的csv最终将包含更多的数据
提前感谢你的帮助
period = data.filter(function(row){
for (var i = 1950; i < 2013; i++) {
return row['YYYYMMDD'] == (i +"0901");
}
});
要检查给定行的日期是否符合指定的标准,请执行以下操作:
row.date.getDate() == 1 && row.getMonth() == 8
&& 1950 <= row.getFullYear() && row.getFullYear() <= 2012
row.date.getDate()==1&&row.getMonth()==8
&& 1950
要检查给定行的日期是否符合指定的标准,请执行以下操作:
row.date.getDate() == 1 && row.getMonth() == 8
&& 1950 <= row.getFullYear() && row.getFullYear() <= 2012
row.date.getDate()==1&&row.getMonth()==8
&&1950您当前没有的内容如何工作?第1期仅返回行['YYMMDD']=='19500901'处的值,而不是我需要的所有63行。您当前没有的内容如何工作?第1期仅返回行['YYMMDD']=='19500901'处的值,而不是我需要的所有63行。谢谢Adam。您的第一个解决方案有效。你建议的改进结构不符合我的需要。它返回19500901和20130901之间的所有行,而不是1950年和2013年之间年份的0901。有没有办法让这种改进的结构也起作用呢?约会会让你的生活更轻松;请参阅编辑后的答案。谢谢。这是一个很大的帮助。谢谢亚当。您的第一个解决方案有效。你建议的改进结构不符合我的需要。它返回19500901和20130901之间的所有行,而不是1950年和2013年之间年份的0901。有没有办法让这种改进的结构也起作用呢?约会会让你的生活更轻松;请参阅编辑后的答案。谢谢。这是一个很大的帮助。
period = data.filter(function(row){
var dateNum = +row['YYYYMMDD'];
return 19500901 <= dateNum && dateNum <= 20130901;
});
period.forEach(function(d){
d.date = d3.format('%Y%m%d').parse(d.date);
})
row.date.getDate() == 1 && row.getMonth() == 8
&& 1950 <= row.getFullYear() && row.getFullYear() <= 2012