Javascript 是否可以使用d3并像vis.js一样创建直线/曲线?

Javascript 是否可以使用d3并像vis.js一样创建直线/曲线?,javascript,d3.js,vis.js,Javascript,D3.js,Vis.js,我正在使用d3创建带有圆和线的网络图。在使用d3时,线条是直的,我想知道是否有可能实现更多类似vis.js的灵活线条,添加pic进行演示: d3: Vis.js: d3可以进行各种可视化。你问的是直线插值。 开箱即用d3支持 线性的 列表项 先走一步 紧跟 基础 基差开放 基差结束 捆 红衣主教 红衣主教公开赛 红衣主教闭门 单调的 有两个链接与插值比较 - - 这些插值可从框中获得,但不限于此。您可以在d3上编写自己的插值, f、 e 添加了代码的剪贴部分。或者,您可以使用d3.svg

我正在使用d3创建带有圆和线的网络图。在使用d3时,线条是直的,我想知道是否有可能实现更多类似vis.js的灵活线条,添加pic进行演示:

d3:

Vis.js:


d3可以进行各种可视化。你问的是直线插值。 开箱即用d3支持

  • 线性的
  • 列表项
  • 先走一步
  • 紧跟
  • 基础
  • 基差开放
  • 基差结束
  • 红衣主教
  • 红衣主教公开赛
  • 红衣主教闭门
  • 单调的
有两个链接与插值比较 - -

这些插值可从框中获得,但不限于此。您可以在d3上编写自己的插值, f、 e

添加了代码的剪贴部分。或者,您可以使用d3.svg.diagonal()

let curveData=[{x:190,y:100},{x:269,y:50},{x:360,y:150}];
让edge=d3.select('svg').append('g').attr('class','g1');
让edge2=d3.select('svg').append('g').attr('class','g2');
var line11=d3.svg.line()
.x(函数(d){return(d.x)})
.y(函数(d){return(d.y)})
.插入(“基数”);
设diagonal=d3.svg.diagonal()
.source(函数(d){return{x:d[0].y,y:d[0].x};})
.target(函数(d){return{x:d[d.length-1].y,y:d[d.length-1].x};})
.投影(函数(d){返回[d.y,d.x];});
d3.选择('.g1')
.基准面(曲线数据)
.append('路径')
.attr('class','link')
.attr('d',对角线)
.attr('笔划','红色')
.attr('stroke-width',3)
.attr('fill','none');
d3.选择(“.g2”)
.基准面(曲线数据)
.append('路径')
.attr('class','link')
.attr('d',第11行)
.attr('笔划','蓝色')
.attr('stroke-width',2)
.attr('fill','none')


是的,我相信你能做到。看看这个。这可能对你有帮助。是的,看看什么是ishm。。。看来在vis.js中没有我可以马上使用的东西,对吧?看起来vis.js使这些产品线非常灵活nice@USer22999299d3首先是数据可视化的数学库。这完全取决于您使用的图表。如果已经有直线-您可以更改插值方法。这完全取决于你正在使用的图表。如果你能分享代码-我可能会帮你我正在构建一个图形,目前,我在它们之间有一些圆圈和线来连接图形组件。在这种情况下,我只需要直线插值?是的,看一看。这只是几行代码