来自matplotlib的交互式_standalone_输出

tsh*_*tsh 7 javascript python svg visualization matplotlib

我喜欢matplotlib创建的图和将它们保存为SVG的选项很棒但是......

我希望能够将图形保存为SVG,并附带可增加某种程度交互性的javascript代码.例如.对于散点图中的每个数据样本,我想在工具提示中显示一些信息.有没有办法实现这个目标?或者你将如何完成这样的事情?

Lel*_*uge 1

使用Cytoscape这相当简单。
您需要做的是创建两个文件

\n
    \n
  1. 包含节点和边信息的文件(File1)
  2. \n
  3. 包含工具提示信息的文件 (File2)
  4. \n
\n

文件1

\n

只需要 3 列(sourceNode, destinationNode, edgeLabel)\n然后您可以从表 (Text/MS Excel) 中转到 File\xe2\x86\x92Import\xe2\x86\x92Network..\n选择源节点、目标节点和交互类型。\ n请记住更改VizMapper

中的显示选项

\n

文件2

\n

节点和边属性文件的格式很简单:节点属性文件的第一行以属性名称开头(注意不能包含空格)。接下来的每一行包含节点的名称,后跟等号和该属性的值。数字和文本字符串是最常见的属性类型。给定属性的所有值必须具有相同的类型。例如:

\n
FunctionalCategory\nYAL001C = metabolism\nYAR002W = apoptosis\nYBL007C = ribosome\n
Run Code Online (Sandbox Code Playgroud)\n

边属性文件具有大致相同的结构,只是边的名称是源节点名称,后面是括号中的交互类型,最后是目标节点名称。方向性很重要,因此切换源和目标将引用不同的(或者可能不存在的)边缘。以下是边属性文件示例:

\n
InteractionStrength\nYAL001C (pp) YBR043W = 0.82\nYMR022W (pd) YDL112C = 0.441\nYDL112C (pd) YMR022W = 0.9013\n
Run Code Online (Sandbox Code Playgroud)\n

由于 Cytoscape 将边缘属性视为有方向的,因此第二个和第三个边缘属性值指的是两个不同的边缘(源和目标相反,尽管涉及的节点相同)。

\n

每个属性都存储在单独的文件中。节点和边属性文件使用相同的格式。节点属性文件名通常使用后缀“.noa”,而边属性文件名则使用后缀“.eda”。Cytoscape 在浏览属性文件时会识别这些后缀。

\n

节点和边属性可以在命令行使用 \xe2\x80\x93n 和 \xe2\x80\x93e 选项或通过文件 \xe2\x86\x92 导入菜单加载。

\n

当使用表达式矩阵加载表达式数据时,除非另有明确指定,否则它会自动加载为节点属性数据。

\n

节点和边属性附加到节点和边,因此独立于网络。给定节点或边的属性将应用于所有加载的网络文件中该节点或边的所有副本,无论首先导入属性文件还是网络文件。

\n

注意:为了在 Cytoscape 2.4 中导入网络属性,请转至 File \xe2\x86\x92 Import \xe2\x86\x92 Attribute from Table (text/MS Excel)... 或将它们编码到 XGMML 网络文件中

\n

第一行之后的每一行都标识对象的名称(节点属性文件中的节点或边属性文件中的边)以及属性值的字符串表示形式。分隔符始终是等号;等号前后的空白(空格和/或制表符)将被忽略。

\n

如果属性要映射到任何内容,则对象名称必须是属性浏览器最左列中所示的节点 ID 或边 ID。这些名称必须准确复制,包括大小写,否则它们将不匹配。

\n

阅读本文了解更多详情

\n