javascript - d3.js 标记自动定向不起作用

标签 javascript svg d3.js markers

我开始使用 d3 来绘制树形图,但我在路径标记上的自动定向方面遇到了问题。路径标记似乎根本没有旋转。

enter image description here

我的标记定义为:

defs.selectAll('marker')
                .data(nodes, function (d) { return d.id || (d.id = ++i); })
                .enter()
                .append('svg:marker')
                .attr('id', function (d) { return 'marker_' + d.name; })
                .attr('markerHeight', 6)
                .attr('markerWidth', 6)
                .attr('orient', 'auto')
                .attr('markerUnits', 'strokeWidth')
                .attr('refX', 3)
                .attr('refY', 3)
                .append('svg:path')
                .attr('d', 'M0,0 V6 L6,3 Z')
                .attr('fill', getNodeColor);

这些标记不应该被旋转以与引用它们的路径对齐吗?

编辑:

<svg style="width: 2000px; height: 600px;">
        <defs>
            <marker refX="3" refY="3" markerHeight="6" markerWidth="6" orient="auto" id="mymarker">
                <path d="M0,0 V6 L6,3 Z" style="fill: #FF0000;"></path>
            </marker>
        </defs>
        <path class="link"
              d="M1246.764705882353,15C1246.764705882353,63.142857142857146 277.05882352941165,63.142857142857146 277.05882352941165,111.28571428571429"
              style="marker-end:url(#mymarker);
                     stroke: rgb(31, 177, 230);
                     stroke-width: 1.5px;">
        </path>
    </svg>

上面是一个 super 简化的示例。浏览器中的结果是:

enter image description here

这是一个 JSFiddle http://jsfiddle.net/mcottingham/LLud4kja/

最佳答案

移除标记,您将看到曲线的末端是垂直的,因此标记的方向符合预期。

<svg style="width: 2000px; height: 600px;">
        <path
              d="M1246.764705882353,15C1246.764705882353,63.142857142857146 277.05882352941165,63.142857142857146 277.05882352941165,111.28571428571429"
              style="fill: none;
                     stroke: rgb(31, 177, 230);
                     stroke-width: 1.5px;">
        </path>
    </svg>

关于javascript - d3.js 标记自动定向不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30630595/

相关文章:

python - 在 Bokeh 中将绘图网格导出为 .svg

javascript - 视觉 : CSS does not apply to D3's svg when using scoped

d3.js - 从文件中读取 d3 数据而不是将其硬编码到程序中

javascript - 检查一个对象是否存在于数组中其他对象的子对象中

javascript - 使用 Angular 将图像上传到 Kinvey

javascript - 在背景的 SVG 动画中更改颜色文本

javascript - 使用 Raphael 2.1 选择 .print 中的单个字母

javascript - 当应用 d3 动画时,输入插入符号在 Chrome 中停止闪烁

javascript - 范围错误: Maximum call stack size exceeded during date filtering

javascript - 防止 Angular Ng-Click 上的区域标签页面重新加载