【发布时间】:2019-12-27 11:10:46
【问题描述】:
我正在尝试禁用折线图上的画笔范围并设置固定宽度。
我知道这个话题已经讨论过好几次了。我尝试过解决这个问题但没有成功:Disable brush resize (DC.js, D3.js) 但我找不到符合我情况的解决方案。
如果有什么不同,我将扩展此问题中讨论的可刷序数图表:DC.js - Custom ordering of ordinal scale line chart
图表初始化代码如下:
line
.width(950)
.height(350)
.margins({top: 10, right: 50, bottom: 35, left: 30})
.dimension(graphDim)
.keyAccessor(function(kv) { return graphGroup.ord2int(kv.key); })
.group(graphGroup)
.x(d3.scaleLinear().domain(linear_domain))
.xAxisLabel("Chronologie")
.yAxisLabel("Effectif")
.brushOn(true)
.renderArea(true)
.renderHorizontalGridLines(true)
.renderVerticalGridLines(true)
.elasticY(true)
.filter(dc.filters.RangedFilter(0,0.9));
line.yAxis().ticks(4);
line.xAxis()
.tickValues(d3.range(data.length))
.tickFormat(function(d) { return graphGroup.int2ord(d); });
line.filterHandler(function(dimension, filters) {
if(!filters || !filters.length) {
dimension.filter(null);
return filters;
}
console.assert(filters.length === 1);
console.assert(filters[0].filterType === 'RangedFilter');
var inside = graphGroup.all().filter(function(kv) {
var i = graphGroup.ord2int(kv.key);
return filters[0][0] <= i && i < filters[0][1];
}).map(function(kv) { return kv.key; });
dimension.filterFunction(function(d) {
return inside.indexOf(d) >= 0;
});
return filters;
})
还有小提琴:https://jsfiddle.net/bob_magnus_1/sr7hmnvf/9/`
有没有一种简单的方法可以在这样的图表中覆盖coordinateGridMixin.extendBrush 函数?
【问题讨论】:
-
您链接的答案有什么不同?或者你只是无法让它工作?
-
请在提问时添加更多细节,并添加相关代码块,以便 SO 让您发布小提琴链接。我已经编辑了你的问题。
-
我必须承认当我试图发布我的链接时我没有得到那部分。谢谢你的解释!
标签: dc.js crossfilter