我有一个非常简单的图表,我想绘制为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.dot
和graph.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,那么它也会这样做。
提前感谢很多。
答案 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()