如何在 cytoscape 中创建从某些节点到 canvas 边界的直线?
How to create straight lines from certain nodes to a border of the canvas in cytoscape?
我在中间栏有一篇文章,两侧有两张用 "ancestors" 和 "descendants" 的 cytoscape 生成的图表。
我想展示"ancestors"上一代文章中的一个"edges"到中间的文章,也就是cytoscape图的边界。
这是现在的样子:
它应该是这样的:
Cytoscape 为我们提供了一些神奇的工具,但它不应该与 html 元素一起使用来显示层次结构。
解决这个问题?主要方法应该是 single/multiple instance dagre graph with images-layout 和某种形式的 qTip HTML:
//instead of qTip you can also use popper.js with tippy
使用这些工具,您应该尝试逐步构建图形:
- 获取 运行
的所有扩展名
- 用你的数据构建一个 dagre 图(布局:根是文章,顶层树是祖先,底层树是 children)
- 将图像添加到图表中
- 为您的根添加一个 qTip
我不确定在 Cytoscape.js div
之上添加另一个 HTML 内容是否是个好主意。我也不知道您是否有一个或两个 Cytoscape.js 个实例(每个图表一个)。
在任何情况下,您都有以下选择:添加一个虚拟节点并使其样式透明以使其不可见。然后将它放在文章的一侧,并从 order-by-length
添加一条边到这个虚拟节点。您可以锁定此节点并使其不可抓取,这样用户将无法与其交互。
这种方法的一个主要问题是,某些布局不遵守 lock
状态,因此虚拟节点会在布局上四处移动。但是您可以在布局停止时将它们带回来。
另一种选择是在 Cytoscape.js canvas 之上添加另一个 canvas,然后自己绘制边缘。
我在中间栏有一篇文章,两侧有两张用 "ancestors" 和 "descendants" 的 cytoscape 生成的图表。
我想展示"ancestors"上一代文章中的一个"edges"到中间的文章,也就是cytoscape图的边界。
这是现在的样子:
它应该是这样的:
Cytoscape 为我们提供了一些神奇的工具,但它不应该与 html 元素一起使用来显示层次结构。
解决这个问题?主要方法应该是 single/multiple instance dagre graph with images-layout 和某种形式的 qTip HTML:
//instead of qTip you can also use popper.js with tippy
使用这些工具,您应该尝试逐步构建图形:
- 获取 运行 的所有扩展名
- 用你的数据构建一个 dagre 图(布局:根是文章,顶层树是祖先,底层树是 children)
- 将图像添加到图表中
- 为您的根添加一个 qTip
我不确定在 Cytoscape.js div
之上添加另一个 HTML 内容是否是个好主意。我也不知道您是否有一个或两个 Cytoscape.js 个实例(每个图表一个)。
在任何情况下,您都有以下选择:添加一个虚拟节点并使其样式透明以使其不可见。然后将它放在文章的一侧,并从 order-by-length
添加一条边到这个虚拟节点。您可以锁定此节点并使其不可抓取,这样用户将无法与其交互。
这种方法的一个主要问题是,某些布局不遵守 lock
状态,因此虚拟节点会在布局上四处移动。但是您可以在布局停止时将它们带回来。
另一种选择是在 Cytoscape.js canvas 之上添加另一个 canvas,然后自己绘制边缘。