Можно ли получить вывод графика 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.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. Если кто-то знает веб-API, с помощью которого я могу сделать это, то и он будет делать.
Заранее большое спасибо.
1 ответ
Решение
Потратив немного больше времени на изучение доступных методов на 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()