我有一个由条形图和散点图组成的复合图。我想要显示散点图数据点,尽管刷动已启用。
在当前行为中,刷新会覆盖数据点工具提示。有什么帮助来满足这个要求吗?
scatterChart
.width(380)
.height(200)
.margins({
top: 10,
right: 20,
bottom: 30,
left: 40
})
.dimension(scatterDimension)
.group(scatterGrouping)
.x(d3.scale.linear().domain([0., 100.]))
.y(d3.scale.linear().domain([0., 100.]))
.renderHorizontalGridLines(true)
.renderVerticalGridLines(true)
.symbolSize(5)
.highlightedSize(8)
//.brushOn(false)
.existenceAccessor(function(d) {
return d.value > 0;
})
.colorAccessor(function(d) {
return d.key[2];
})
.colors(fruitColors)
.filterHandler(function(dim, filters) {
// https://jsfiddle.net/gordonwoodhull/c593ehh7/5/
if (!filters || !filters.length)
dim.filter(null);
else {
// assume it's one RangedTwoDimensionalFilter
dim.filterFunction(function(d) {
return filters[0].isFiltered([d[0], d[1]]);
})
}
});
派生示例- http://jsfiddle.net/81mzjkjz/37/
发布于 2017-02-16 23:47:18
默认情况下,dc.js会将画笔层放在所有其他层的前面,这样它就会截取所有单击。如果你能够将鼠标悬停在这些点上,你也可以点击它们,这意味着如果你在一个点上不小心开始刷屏,刷屏就不会发生。
但是如果你愿意冒这个险,你可以像这样把画笔移到它兄弟的后面:
scatterChart.on('pretransition', function(chart) {
var brushNode = chart.select('g.brush').node();
var firstChild = brushNode.parentNode.firstChild;
if (firstChild) {
brushNode.parentNode.insertBefore(brushNode, firstChild);
}
});
我还没有调查过是否有可能让点击通过点,而鼠标停留在点上。我的猜测是,这将很难做到正确。
你的提琴叉子(谢谢!):http://jsfiddle.net/gordonwoodhull/sajwjv7n/3/
https://stackoverflow.com/questions/42251090
复制相似问题