在dc的条形图中启用默认选择

时间:2014-07-28 09:31:50

标签: multi-select dc.js crossfilter

所以,我有两个使用交叉滤波器和直流图绘制的条形图。这就是我的代码的样子:

var barChart2 = dc.barChart("#dc-mv-chart");  
var depValue = facts.dimension(function(d) {return d.d;});
var depValueGroupSum = depValue.group().reduceSum(function(d) {return +d.g;});
var mvValue = facts.dimension(function(d,i) {return d.b;});
      var mvValueGroupSum = mvValue.group().reduceSum(function(d) {return +d.g;});  
      barChart1.width(1200)
            .height(200)
            .margins({top: 10, right: 10, bottom: 20, left: 80})
            .dimension(depValue)                                
            .group(depValueGroupSum)                            
            .transitionDuration(800)
            .centerBar(true)    
            .gap(10)                                            
            .x(d3.scale.ordinal().domain(["AUTO & TIRES", "BABY", "CLOTHING", "ELECTRONICS", "GARDEN", "GROCERY", "HEALTH", "HOME", "HOME IMPROVEMENT", "PHOTO", "SPORTS", "TOYS", "VIDEO GAMES"]))
            .elasticY(true);


        //barChart1.filter = function() {}

          barChart2.width(600)
            .height(300)
            .margins({top: 10, right: 10, bottom: 20, left: 80})
            .dimension(mvValue)                             
            .group(mvValueGroupSum)                         
            .transitionDuration(800)
            .centerBar(true)    
            .gap(20)                                            
            .x(d3.scale.ordinal().domain(["SEM", "SEO", "SOCIAL", "CSE", "ORGANIC", "MOBILEWEB", "AFFILIATES", "EMAIL", "DISPLAYADS"]))
            .elasticY(true)
            .renderHorizontalGridLines(true)
            .xUnits(dc.units.ordinal);      

          // Render the Charts
          dc.renderAll();

但是,在我的第一个图表(即barChart1)中,我希望默认选择其中一个条形图,即'Auto&轮胎'并且,在第一张图表中我随时只需要进行一次选择(即禁用第一张图的多选)所以这就是我想知道的:

  1. 是否可以禁用多重选择(请记住,一次只能在图表中选择一个条形图),使用直方图绘制条形图?
  2. 如果可以1,那么是否可以始终保持默认选定的栏(我的意思是,在没有选择时首次加载时,以及用户说的情况)选择“运动”并取消选择它。在取消选择时,显示的图表应为“自动&轮胎'这是我的默认选择)
  3. 我很擅长使用直流和交叉过滤器,但对于我想要实现的内容并没有太多了解。所以,任何形式的帮助或建议都将受到赞赏。

0 个答案:

没有答案