Javascript 如何仅显示已筛选的条目dc.js?
我正在尝试使用迷你条形图过滤器创建dc.js条形图,这样当您选择on filter时,它会将其应用于更大的图表。但它仍然显示其余条目,只是它们是隐藏的。我希望x轴显示过滤集而不是完整集。如何做到这一点?这是一本书。结果如下: 这是密码Javascript 如何仅显示已筛选的条目dc.js?,javascript,d3.js,dc.js,Javascript,D3.js,Dc.js,我正在尝试使用迷你条形图过滤器创建dc.js条形图,这样当您选择on filter时,它会将其应用于更大的图表。但它仍然显示其余条目,只是它们是隐藏的。我希望x轴显示过滤集而不是完整集。如何做到这一点?这是一本书。结果如下: 这是密码 var data = [ { 'Expt': 1, 'Run': 1, 'Speed': 85, 'title': 'Title1' }, { 'Expt': 1, 'Run': 2, 'Speed': 34, 'title': 'Title2'
var data = [
{ 'Expt': 1, 'Run': 1, 'Speed': 85, 'title': 'Title1' },
{ 'Expt': 1, 'Run': 2, 'Speed': 34, 'title': 'Title2' },
{ 'Expt': 1, 'Run': 3, 'Speed': 90, 'title': 'Title3' },
{ 'Expt': 1, 'Run': 4, 'Speed': 107, 'title': 'Title4' },
{ 'Expt': 1, 'Run': 5, 'Speed': 85, 'title': 'Title5' },
{ 'Expt': 1, 'Run': 6, 'Speed': 34, 'title': 'Title6' },
{ 'Expt': 1, 'Run': 7, 'Speed': 90, 'title': 'Title7' },
{ 'Expt': 1, 'Run': 8, 'Speed': 107, 'title': 'Title8' }
];
var ndx = crossfilter(data),
runDimension = ndx.dimension(function(d) {return +d.Run;}),
filterDimension = ndx.dimension(function(d) {return +d.Run;}),
speedSumGroup = runDimension.group().reduceSum(function(d){return d.Speed})
var chart = dc.barChart("#test");
chart
.width(768)
.height(280)
.gap(20)
.x(d3.scale.linear().domain([0, data.length + 1]))
.brushOn(false)
.centerBar(true)
.renderLabel(true)
.xAxisPadding(1)
.yAxisLabel("Y Axis")
.elasticX(true)
.dimension(runDimension)
.group(speedSumGroup)
.renderTitle(true).title(function (d) {
return 'test: ' + d.value;
})
.renderHorizontalGridLines(true)
.label(function (d) {
console.log(d);
return 'test';
});
chart.render();
var chart2 = dc.barChart("#brush");
chart2
.width(768)
.height(180)
.gap(20)
.x(d3.scale.linear().domain([0, data.length + 1]))
.brushOn(true)
.centerBar(true)
.renderLabel(true)
.xAxisPadding(1)
.yAxisLabel("Y Axis")
.elasticX(true)
.dimension(filterDimension)
.group(speedSumGroup)
.elasticY(true)
.renderTitle(true).title(function (d) {
return 'test: ' + d.value;
})
.renderHorizontalGridLines(true)
.label(function (d) {
console.log(d);
return 'test';
});
chart2.render();
你会认为
elasticX
可以做到,对吗?但我认为这里发生的事情是,垃圾桶仍然存在,但是是空的。因此,dc有助于“显示您的零”
我认为有两种可能的解决办法:
- 使用范围/焦点图表功能,如移动和音量的上所示
- 更直接地回答您的问题:预先过滤掉零,以便elasticX按照您的预期工作-参见本常见问题解答答案中的第二个示例: