来自matplotlib的交互式_standalone_输出

时间:2011-10-06 08:50:16

标签: javascript python svg matplotlib visualization

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

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

2 个答案:

答案 0 :(得分:1)

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

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

    这只需要3列(sourceNode, destinationNode, edgeLabel) 然后你可以从表格(文本/ MS Excel)转到文件→导入→网络。 选择源节点,目标节点和交互类型。

    请务必更改VizMapper

    中的显示选项

    文件2

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

    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网络文件中对其进行编码

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

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

    阅读this了解更多详情

答案 1 :(得分:0)

如果您同意使用html文件而不是svg;你可能正在寻找Bokeh?

请参阅此处http://bokeh.pydata.org/en/latest/docs/gallery.html

我不相信你需要一台服务器用于大多数应用程序,正如他们在文档中所说:" Bokeh可以使用file_html()函数生成独立的HTML文档。此函数可以从其自己的通用模板或您提供的模板中发出HTML。这些文件包含内联绘图的数据,并且可以完全传输,同时仍为您的绘图提供交互式工具(平移,缩放等)。 "