无法重置焦点顺序条形图

Unable to reset the focus ordinal bar chart

我正在尝试在选择了一些个人的酒吧后重新设置。

index.html:(第 62 行)

<span>
  <a href="javascript:focus.filterAll(); dc.redrawAll();"  class="reset">reset</a>
</span>

这似乎不起作用。我能够重置所有图形饼图、折线图等,但不能重置这个。

这两个序数图是在 index.js 中创建的,如下所示:

var focus = new dc.barChart('#focus');
var range = new dc.barChart('#range');

https://blockbuilder.org/ninjakx/483fd69328694c6b6125bb43b9f7f8a7

更新: 现在看起来很奇怪,因为它只显示一个条,所有条都看不见,但我希望它们可见(灰色)但不可点击。

此示例将条形图的内置过滤功能替换为其自己的序号选择实现,因为图表具有线性刻度。

该示例使用全局变量focusFilter 来存储当前选择。我们需要清空它,我们还需要像原来的 filterAll 那样更新维度过滤器,将代码从点击处理程序中拉出:

    focus.applyFilter = function() { // non-standard method
        if(focusFilter.length)
            this.dimension().filterFunction(function(k) {
                return focusFilter.includes(k);
            });
        else this.dimension().filter(null);
    };
    focus.filterAll = function() {
        focusFilter = [];
        this.applyFilter();
    };

这也将允许 dc.filterAll() 工作,因为 "reset all" link。

Fork of your block.

由于某些原因,我无法获得原件

<a href="javascript:focus.filterAll(); dc.redrawAll()">reset</a>

links 完全无法在此块中工作,因此我将它们替换为等效的 D3 单击处理程序:

    d3.select('#reset-focus').on('click', () => {
      focus.filterAll();
      dc.redrawAll();
    })
    d3.select('#reset-all').on('click', () => {
      dc.filterAll();
      dc.redrawAll();
    })

我也更新了the focus ordinal bar example。请注意,重置 link 的自动 hiding/showing 不起作用,因为图表内部仍有不相关的范围过滤器。