css - 如何修复带有 d3 的 Sankey 链接的 SVG 路径元素上不需要的圆圈/损坏?

标签 css svg d3.js sankey-diagram stroke

我正在通过 SVG 组合桑基图,但突然在某些未知条件下,其中一条路径显示了一个不应该有的圆圈。

我尝试从 SVG 中删除尽可能多的内容,但进一步删除任何内容都会导致此问题不再可重现。

在这里您可以看到我缩小的 SVG 图像。黑色路径元素是有问题的元素。我手动标记了路径描边元素应该结束的位置,但不知何故它显示了一个圆,该圆似乎具有与描边宽度相同的半径。

example image showing the issue

<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/

相关文章:

html - CSS 显示属性是否可以使用关键帧进行动画处理?

html - 将样式应用于 COLGROUP 但仅在 TBODY(而不是 THEAD)内的 CSS 选择器?

javascript - 力 + 拖动 + 缩放 : freeze after few seconds

javascript - 单击按钮 d3.js 时如何在线删除工具提示

image - 使用 IMG 响应,PNG 只能从大尺寸缩放到正常尺寸,而不是从正常尺寸缩放到小尺寸

html - 可变高度容器内的垂直滚动导航

javascript - 从 Javascript 访问 SVG 对象时收到 Uncaught SecurityError

javascript - 绘制三次贝塞尔曲线路径时,属性 `marker-mid` 不起作用

android - 资源可用时出现 ResourcesNotFoundException(API 22 和 23 设备)

d3.js - DC.js scatterPlot 坐标轴刻度位置