是否可以在没有中间文件的情况下获得pydot图的输出?

时间:2016-07-11 07:46:02

标签: python svg graphviz pygraphviz pydot

我有一个非常简单的图表,我想绘制为svg。例如:

# graph.dot
graph { 
        a -- b; 
        b -- c; 
    } 

我目前正在使用pydot读取文件,然后按如下方式生成svg文件:

import pydot
graphs = pydot.graph_from_dot_file('graph.dot')
graphs[0].write_svg('graph.svg') # there is only 1 graph so the 0 index.

但是,我需要在不需要中间文件graph.dotgraph.svg的情况下执行此操作。我在字符串中有graph.dot的代码内容,对应于我需要字符串中的svg输出。

我需要类似的东西:

graph_dot = "... ..." # string, I have this
graph_svg = convert_dot_to_svg(graph_dot) 
# i need something like convert_dot_to_svg()

我的问题不仅限于pydot。如果有人知道我可以做到这一点的web api,那么它也会这样做。

提前感谢很多。

1 个答案:

答案 0 :(得分:7)

在花费更多时间查看pydot对象和graph对象上的可用方法之后,可以想出:

以下代码有效:

import pydot    
dot_string = """graph { 
                    a -- b; 
                    b -- c; 
                } """

graphs = pydot.graph_from_dot_data( dot_string )
svg_string = graphs[0].create_svg() 
相关问题