使用图论/网络库在节点的背景上绘制图标

时间:2016-01-29 16:19:50

标签: javascript d3.js visualization cytoscape.js graph-visualization

我有数据,我想在网络浏览器中将其表示为图形。据我所知 - 现在不是问题。但是,我希望能够为每个节点动态绘制内容 - 一个图标。

此图片/图标取决于节点的特性,不能存储为预设图像 - 应在我们构建图形时绘制。我已经实现了在画布上绘制图标(也许这不是一个好主意 - 我们会看到),但我不确定如何在节点上绘制图标。我尝试了D3和Cytoscape.js。

图标的简化示例可以是具有多个点的矩形。此数字和点的位置在节点上指定。

如何使用D3或Cytoscape.js等将画布从画布绘制到节点的背景上?

1 个答案:

答案 0 :(得分:1)

Cytoscape.js本身支持背景图像,有许多选项。对于您的用例,这很简单:

(1)将图片从画布导出到PNG或JPG:canvas.toDataURL("image/png");

(2)使用从画布获得的数据URI在Cytoscape.js中为节点设置样式中的background-imagehttp://js.cytoscape.org/#style/background-image

您也可以使用SVG图像执行相同的操作。您甚至可以使用svg.js等库来轻松构建SVG。再次,只需获取SVG的数据URI并将其指定为背景图像。

如果您想在样式表中整理图像,也可以使用a mapper function