我一直试图弄清楚过关时间......我正在使用dc.js库开发堆栈栏图表 . 有很多尺寸(x轴),我需要显示前10名 . 我听说在行图中,你可以使用cap(),但其他图表不 . 我正在尝试使用.data(...),但我一直在犯错误 . 即使我做了,

chart.data(function(d) {
       return d.all();
    }

这被认为是默认值,但我在dc.js库中收到“无法获取未定义或空引用的属性'数据”错误 . 我调试了它,我注意到在dc.js中,它得到了未定义的值 . 我在库中的这个功能中发现它 .

function flattenStack() {
        var valueses = _chart.data().map(function (layer) { return layer.values; });
        return Array.prototype.concat.apply([], valueses);
    }

当我删除.data(..)函数时,我的堆栈条形图工作,但它的显示很多(x轴或条形) . 这是我工作的代码 . 我希望这有帮助 .

//Create StackBar Chart
function createStackBarChart(parent, dimension, groupHelper, dataSet){

    var chart = (dataSet == 'default') ? dc.barChart(parent) : dc.barChart(parent, dataSet);

    var group1 = groupHelper.createGroup1(dimension, groupHelper.config);
    if (groupHelper.groupOrder) {
        group1.order(groupHelper.groupOrder);
    }

    var group2 = groupHelper.createGroup2(dimension, groupHelper.config);
    /*if (groupHelper.groupOrder) {
        group2.order(groupHelper.groupOrder);
    }*/


    chart._lookup = null; // stored lookup object
    chart.lookup = function(_) { if (!arguments.length) return this._lookup; this._lookup = _; };

        chart.width(900).height(300)
           .dimension(dimension)  
           .group(group1,  'A')  //remove_empty_bins(group1)
           .stack(group2, 'B')
           .valueAccessor(function(p){ 

               return p.value.items; })
           .renderHorizontalGridLines(true)
           .renderLabel(true)
           .legend(dc.legend().x(100).y(0).horizontal(1).itemHeight(13).gap(6).legendWidth(400).itemWidth(100))
           .gap(5)
           .elasticX(true).elasticY(true)
           .yAxisLabel("count")
           .x(d3.scale.ordinal())
           .xUnits(dc.units.ordinal)
           .ordering(function(d) {
               return -d.value.items;
           });


/*         chart.data(function(d) {

               var getAllData = d.all();

               return getAllData;

           }); */


        chart.renderlet(function (chart) {
           // rotate x-axis labels
           chart.selectAll('g.x text')
             .attr('transform', 'translate(-10,10) rotate(315)');      
     });

        return chart;
    }

我也试过使用.ticks(10),但没有任何反应 . 请你能坚持我吗?我正在使用多个图表 . 所以我无法过滤前10名并将其显示在堆栈栏图表中 . 如何在不强制过滤其余图表的情况下显示堆栈栏图表中的前10个 . 我只是想显示它,我会弄清楚如何交叉过滤它 .