我有一个用D3创建的数据图,在其中为每个数据点画了一个圆。
当圆重叠时,我想将它们放大一些,以便在多个数据点堆积在同一位置时看到差异。
我发现我可以将feMorphology
应用于dilate
过滤器,但是我需要能够根据相同位置的圆数以某种方式缩放膨胀。
这是SVG演示:
<svg width="400" height="120" xmlns="http://www.w3.org/2000/svg">
<filter id="dilateIfOverlapping">
<feMorphology operator="dilate" radius="4">
</filter>
<g filter="url(#dilateIfOverlapping)">
<circle cx="60" cy="60" r="30" fill="green" />
<circle cx="60" cy="60" r="30" fill="green" />
<circle cx="170" cy="60" r="30" fill="green" />
</g>
</svg>
这将渲染两个相同大小的圆。我希望第一个更大,因为彼此之间有两个圆圈。
有没有办法在不通过编程方式设置不同的圆半径的情况下实现这一目标?