我正在通过 SVG 组合桑基图,但突然在某些未知条件下,其中一条路径显示了一个不应该有的圆圈。
我尝试从 SVG 中删除尽可能多的内容,但进一步删除任何内容都会导致此问题不再可重现。
在这里您可以看到我缩小的 SVG 图像。黑色路径元素是有问题的元素。我手动标记了路径描边元素应该结束的位置,但不知何故它显示了一个圆,该圆似乎具有与描边宽度相同的半径。
<div style="width: 100%; height: 100%;">
<svg width=100% height=500px>
<g class="sankey-layer">
<g class="link-group">
<path d="M107.61971830985915,30C107.61971830985915,74,107.61971830985915,74,107.61971830985915,118" fill="none" stroke="#000000" stroke-opacity="1" stroke-width="200"></path>
<path d="M251.11267605633802,30C251.11267605633802,192,328.943661971831,192,328.943661971831,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="71.74647887323944"></path>
<path d="M478.38028169014075,30C478.38028169014075,192,384.7464788732394,192,384.7464788732394,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="39.859154929577464"></path>
<path d="M542.1549295774647,30C542.1549295774647,192,572.1549295774648,192,572.1549295774648,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="87.69014084507042"></path>
<path d="M344.8169014084507,30C344.8169014084507,192,452.50704225352115,192,452.50704225352115,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="95.66197183098592"></path>
<path d="M143.49295774647888,148C143.49295774647888,251,153.49295774647888,251,153.49295774647888,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="79.71830985915493"></path>
<path d="M409.12773522289996,148C409.12773522289996,251,213.28169014084506,251,213.28169014084506,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="39.859154929577464"></path>
</g>
</g>
</svg>
</div>
有什么线索可以告诉我这是从哪里来的以及我可以采取什么措施来避免它吗?
澄清:
路径由 d3 计算。这不是手动创建的图形,我正在寻找问题的通用解决方案,而不是此特定示例的解决方案。
最佳答案
我将第一个路径更改为 <path d="M107.62,30L107.62,118" fill="none" stroke="#000000" stroke-opacity="1" stroke-width="200"></path>
。我通过将其加载到 Illustrator 中来解决这个问题。
我不能 100% 确定问题出在哪里,但也许比我聪明的人会弄清楚。 SVG 的数学计算让我很头疼。
<div style="width: 100%; height: 100%;">
<svg width=100% height=500px>
<g class="sankey-layer">
<g class="link-group">
<path d="M107.62,30L107.62,118" fill="none" stroke="#000000" stroke-opacity="1" stroke-width="200"></path>
<path d="M251.11267605633802,30C251.11267605633802,192,328.943661971831,192,328.943661971831,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="71.74647887323944"></path>
<path d="M478.38028169014075,30C478.38028169014075,192,384.7464788732394,192,384.7464788732394,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="39.859154929577464"></path>
<path d="M542.1549295774647,30C542.1549295774647,192,572.1549295774648,192,572.1549295774648,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="87.69014084507042"></path>
<path d="M344.8169014084507,30C344.8169014084507,192,452.50704225352115,192,452.50704225352115,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="95.66197183098592"></path>
<path d="M143.49295774647888,148C143.49295774647888,251,153.49295774647888,251,153.49295774647888,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="79.71830985915493"></path>
<path d="M409.12773522289996,148C409.12773522289996,251,213.28169014084506,251,213.28169014084506,354" fill="none" stroke="#00bbff35" stroke-opacity="0.5" stroke-width="39.859154929577464"></path>
</g>
</g>
</svg>
</div>
关于css - 如何修复带有 d3 的 Sankey 链接的 SVG 路径元素上不需要的圆圈/损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72584917/