D3.js dc.js/crossfilter.js brushon filter-所选筛选未在其他图表中更新
过滤器/画笔范围不适用于我的某个图表中的某些值 此图表的范围从0开始,到300结束 范围>100的笔刷选择无效,其他图表未过滤和显示相关数据 如果有人能指出可能的问题,这将是有益的 样本数据-开始 ioi、分析日期、收盘时间、交易时间、窗口、价格渠道、交易数量 不,2011年2月28日,不,12:36.0,12:38:00,0.73,15, 不,2011年2月28日,不,12:39.0,12:40:00,0.73,23, 不,2011年2月28日,不,12:57.0,12:58:00,0.73,58, 不,2011年2月25日,不,09:21.0,09:22:00,0.64,10, 不,2011年2月25日,不,09:31.0,09:32:00,0.64,85, 是的,2010年11月30日,是的,12:58.0,13:00:00,0.95300,很长, 是的,2010年11月30日,是的,12:58.0,13:00:00,0.95200,长,D3.js dc.js/crossfilter.js brushon filter-所选筛选未在其他图表中更新,d3.js,dc.js,crossfilter,D3.js,Dc.js,Crossfilter,过滤器/画笔范围不适用于我的某个图表中的某些值 此图表的范围从0开始,到300结束 范围>100的笔刷选择无效,其他图表未过滤和显示相关数据 如果有人能指出可能的问题,这将是有益的 样本数据-开始 ioi、分析日期、收盘时间、交易时间、窗口、价格渠道、交易数量 不,2011年2月28日,不,12:36.0,12:38:00,0.73,15, 不,2011年2月28日,不,12:39.0,12:40:00,0.73,23, 不,2011年2月28日,不,12:57.0,12:58:00,0.73,
结束 否或是新行的开始 代码开始
var analysis_date_dimension;
var dimension_trade_qty;
var dim_time_of_day;
d3.csv("formatted_client_data.csv", function (error, response) {
var min_trade_quantity = 0
var max_trade_quantity = 310;
response.forEach(function (d, i) {
d.index = i;
d.analysis_date = d3.time.format("%m/%d/%Y").parse(d.analysis_date);
d.trade_time = d3.time.format("%I:%M").parse(d.trade_time.split('.')[0]);
d.date_time = getDateTime(d.analysis_date, d.trade_time);
});
function getDateTime(date, time) {
var dd = date.getDate();
var mm = date.getMonth() + 1;
var yy = date.getFullYear();
var hh = time.getHours();
var ms = time.getMinutes();
var x = yy + ',' + mm + ',' + dd + ' ' + hh + ':' + ms;
return new Date(x);
}
var responseData = crossfilter(response);
//Main Chart
analysis_date_dimension = responseData.dimension(
function (d) { return d.analysis_date; });
var day_total = analysis_date_dimension.group().reduceSum(
function (d) { return d.trade_quantity; });
//Trade Quantity Chart
dimension_trade_qty = responseData.dimension(
function (d) { return d.trade_quantity; });
var group_trade_qty = dimension_trade_qty.group().reduceCount(
function (d) { return d.trade_quantity; });
var day_chart = dc.barChart("#charts");
var trad_qty_chart = dc.barChart("#chart_trade_qty");
//Days chart
day_chart
.width(1024).height(340)
.dimension(analysis_date_dimension)
.group(day_total)
.brushOn(true)
.x(d3.time.scale().domain(d3.extent(response, function (d) { return d.analysis_date; })))
.yAxis().tickFormat(d3.format("d"));
//Trade Quantity Chart
trad_qty_chart
.width(600).height(200)
.dimension(dimension_trade_qty)
.group(group_trade_qty)
.brushOn(true)
.x(d3.scale.linear().domain([min_trade_quantity, max_trade_quantity + 10]))
.yAxis().ticks()
;
dc.renderAll();
});
代码结束我拥有的数据必须重新格式化为数字。d、 贸易数量=+d.贸易数量;刷子过滤器正在按预期工作。您能创建一个工作示例吗?你是说JSFIDLE还是其他选择?目前还不清楚数据的结构。我怀疑你的维度不是自然排序的,但是如果没有一个工作示例和访问真实数据,很难判断这是否真的是问题所在。谢谢Ethan。我想出来了。我拥有的数据,必须重新格式化为数字。d、 贸易数量=+d.贸易数量;刷子过滤器现在正按预期工作。是的,这通常是解决自然排序问题的一个解决方案。很高兴你解决了。干杯。@user2651831您应该将其作为答案发布,这样这个问题就不会被标记为未回答。