在dc.js / d3.js中使用多个图表时,如何在页面加载时只显示一个画笔

时间:2014-05-16 19:12:47

标签: d3.js brush dc.js crossfilter

我使用带有多个条形图和行图的dc.js / d3.js创建了一个页面,当我将鼠标悬停在它们上并进行交互时,画笔功能在所有图表中都按预期工作。

我正试图让其中一个图表显示画笔并在页面加载时显示范围,但是当我在一个图表上使用.filter尝试此操作时,其他图表将被禁用。我还尝试过.extent。

两个版图表的图片:

http://neil-s.com/unison/images/Brush3.png

我已经查看了SO上的一些相关帖子,但它们并不是我需要的。主crossfilter页面有一个例子,但由于代码是如此不同,我想看看我是否能保留我所拥有的,否则我将使用crossfilter页面代码。

更新 这是一个jsfiddle - http://jsfiddle.net/jth32/22/

以下是条形码代码的一小部分示例:

    // Bar Chart 3-------------------------------
    psalBarChart
        .width(300).height(150)         
        .dimension(psalDim) 
        .group(psalGroup) 
        .x(d3.scale.linear()
            .domain([25, 40]))      
        .xAxisLabel("Salinity")
        .centerBar(true);

    // Bar Chart 4 -----------------------------------      
    depthBarChart
        .width(300).height(150)         
        .dimension(depthDim) 
        .group(depthGroup) 
        .x(d3.scale.linear()
            .domain([0, 2050]))                         
        .xAxisLabel("Depth")
        .centerBar(true)
        //.filter([0,1000]) // Creates Brush, but disables other charts 

由于

1 个答案:

答案 0 :(得分:0)

我发现它与我正在使用的dc.js版本有关。 github(v2.0)上的最新版本就是我所拥有的,但我在jsfiddle中使用的CDN链接使用的是版本1.6.0,并且正如Ethan所提到的那样。一旦我在开发环境中切换到1.6.0,就解决了我的问题。

我向dc-js google用户组发了一条消息,如果这确实是dc.js v2.0中的错误,我会在此处添加另一条消息。