DOT - как уменьшить линии, соединяющие два узла - PullRequest
3 голосов
/ 10 февраля 2012

У меня есть функция, которая записывает, как методы вызываются во время выполнения. Я пытаюсь использовать точку для визуализации этой информации. Некоторые методы вызываются много раз - например, в случае цикла - в графе я хотел бы иметь только одну линию, соединяющую оба узла - есть ли переключение для этого ... См. Пример диаграммы "RawFitsData._method" вызывает "RawFitsData INIT "; несколько раз, на графике, я хотел бы отобразить только одну строку enter image description here

digraph G{
    splines=false;
    ranksep=1;
node[shape=box, color=grey, style=filled];


    "DBProxy.fetch_from_database" -> "RawFitsData._method";
    "RawFitsData._method" -> "RawFitsData.__init__";
    "RawFitsData._method" -> "RawFitsData.__init__";
    "RawFitsData._method" -> "RawFitsData.__init__";
    "RawFitsData._method" -> "RawFitsData.__init__";
 "RawFitsData._method" -> "RawFitsData.__init__";
    "RawFitsData.__init__" -> "RawFitsData._method";
    "RawFitsData._method" -> "RawFitsData.__init__";
    "RawFitsData.__init__" -> "RawFitsData._set_pathname";
    "RawFitsData._set_pathname" ->"split";
    "RawFitsData._set_pathname" ->"setter";
    "RawFitsData.__init__" -> "RawFitsData._get_pathname";
    "RawFitsData._get_pathname" ->"getter";
    "RawFitsData._get_pathname" ->"join";
    "deepcopy" ->"RawFitsData._method";
    "RawFitsData._method" -> "RawFitsData.__reduce__";
    "RawFitsData.__reduce__" -> "WeakValueDictionary.__setitem__";
    "RawFitsData.__reduce__" ->"getter";
    "RawFitsData.__reduce__" -> "RawFitsData._get_pathname";
    "RawFitsData._get_pathname" ->"getter";

    }

1 Ответ

5 голосов
/ 10 февраля 2012

Использовать строгий орграф.

strict digraph G {
    splines=false;
    ...

В нем пропущены повторяющиеся края.Справка: Документация DOT .

...