dc.js / crossfilter.js brushon filter - 选择过滤不在其他图表中更新

时间:2015-07-06 08:48:18

标签: d3.js dc.js crossfilter

过滤器/画笔范围对我的某个图表中的某些值无效。

此图表的范围从0开始,到300结束。

范围的画笔选择> 100不起作用,其他图表没有过滤和显示相关数据。

如果有人可以指出可能存在的问题,那将会很有帮助。

示例数据 - 开始 IOI,analysis_date,closing_minutes,trade_time,窗口,price_channel,trade_quantity 无,O 2/28/2011年,无,12:36.0,12:38:00,0.73,15, 无,O 2/28/2011年,无,12:39.0,12:40:00,0.73,23, 否,02年/ 28/2011号,12:57.0,12:58:00,0.73,58, 否,02年/ 25/2011号,09:21.0,09:22:00,0.64,10, 否,02年/ 25/2011号,09:31.0,09:32:00,0.64,85, 是11/30/2010年,是的,12:58.0,13:00:00,0.95,300,龙, 是11/30/2010年,是的,12:58.0,13:00:00,0.95,200,龙,
END

NO或YES是新行的开头

代码开始

    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();
    });

代码结束

1 个答案:

答案 0 :(得分:0)

我拥有的数据必须重新格式化为数字。 d.trade_quantity = + d.trade_quantity;刷过滤器现在按预期工作。