我希望能够保存图形为SVG,并附带JavaScript代码,以添加一定程度的交互性。例如,在散点图中的每个数据样本中,我想在工具提示中显示一些信息。有什么方法可以实现这一点吗?或者你会如何完成这样的事情?
这很容易使用Cytoscape来完成。
你需要做的是创建两个文件:
这只需要3列(sourceNode,destinationNode,edgeLabel)
,然后您可以选择 文件-> 从表格(文本/MS Excel)导入-> 网络。选择源节点,目标节点和交互类型。
记得在VizMapper中更改显示选项。
节点和边属性文件的格式非常简单:节点属性文件以第一行上的属性名称开头(注意它不能包含空格)。每个后续行都包含节点的名称,后跟等号和该属性的值。数字和文本字符串是最常见的属性类型。给定属性的所有值必须具有相同的类型。例如:
FunctionalCategory
YAL001C = metabolism
YAR002W = apoptosis
YBL007C = ribosome
InteractionStrength
YAL001C (pp) YBR043W = 0.82
YMR022W (pd) YDL112C = 0.441
YDL112C (pd) YMR022W = 0.9013
由于Cytoscape将边属性视为有方向性,因此第二个和第三个边属性值指的是两条不同的边(源和目标被颠倒了,但涉及的节点相同)。
每个属性都存储在单独的文件中。节点和边属性文件使用相同的格式。节点属性文件名通常使用后缀“.noa”,而边属性文件名使用后缀“.eda”。当浏览属性文件时,Cytoscape会识别这些后缀。
可以使用“-n”和“-e”选项或通过“文件”→“导入”菜单加载节点和边属性。
当使用表达式矩阵加载表达式数据时,它会自动加载为节点属性数据,除非另有明确说明。
节点和边属性附加到节点和边,因此与网络无关。对于给定节点或边的属性将应用于所有已加载的网络文件中该节点或边的所有副本,无论先导入属性文件还是网络文件。
注意:要在Cytoscape 2.4中导入网络属性,请转到“文件”→“导入”→“从表格(文本/MS Excel)导入属性...”或将其编码在XGMML网络文件中。
除第一行外,每行都标识了一个对象的名称(节点属性文件中的节点或边属性文件中的边)以及属性值的字符串表示形式。分隔符始终是等号;等号前后的空格(空格和/或制表符)将被忽略。
如果属性要映射到任何内容,则对象名称必须是属性浏览器中最左列中看到的节点ID或边ID。这些名称必须完全复制,包括大小写,否则它们将不匹配。
阅读this以获取更多详细信息
如果您同意使用html文件而不是svg,则Bokeh可能是您要寻找的东西?
请参见此处http://docs.bokeh.org/en/latest/docs/gallery.html
我认为对于大多数应用程序,您不需要服务器,因为文档中说:“Bokeh可以使用file_html()函数生成独立的HTML文档。此函数可以从其自己的通用模板或您提供的模板发出HTML。这些文件包含图形的数据,并且在传输时完全可移植,同时仍然为您的图形提供交互式工具(平移,缩放等)。"