我想知道是否可以将画笔内的区域显示为与画笔外区域不同的颜色或不同的不透明度级别。我使用焦点+上下文示例作为起点(http://bl.ocks.org/mbostock/1667367)。我想知道下直方图中的区域(画笔存在的地方)是否可以使用 0.5 的 alpha 通道进行渲染,而画笔内部的区域的 alpha 可以为 1.0。这可能吗?我已经解决这个问题好几天了,似乎无法接近解决方案。提前致谢。
编辑**好的。我想我从您下面关于添加条件填充的评论中理解了基本概念......但我很难实现它。在原始示例 ( http://bl.ocks.org/mbostock/1667367 ) 中,焦点是主要的直方图,而上下文是带有画笔的较小直方图。我想我可以在画笔函数中添加两条线,以便为画笔内的上下文直方图上的区域涂上不同的颜色......但它并不完全有效。我在控制台窗口中收到一条错误消息,提示“无法读取未定义的属性长度”。这是我的刷过功能的样子:
function brushed() {
x.domain(brush.empty() ? x2.domain() : brush.extent());
focus.select("path").attr("d", area);
focus.select(".x.axis").call(xAxis);
//these are the two lines that I've added
context.select("path").attr("d", area)
.style("fill", "#ff0000");
}
你可以看到我实际上并没有使用条件填充部分......但我认为刷过的函数正在返回一组裁剪的数据“区域”,我认为我可以使用相同的区域但归因于上下文(而不是焦点)......但这没有用。