точка графика: как вставить стрелки из узла в центр стрелки - PullRequest
9 голосов
/ 15 сентября 2010

Я пытаюсь создать диаграммы для анализа MPLUS с точкой из пакета graphviz.Есть ли у кого-нибудь опыт использования точки для визуализации моделей структурных уравнений / моделей скрытых классов?Особенно есть одна особенность, которую я не могу понять, как сделать красиво:

Мне нужны стрелки от узлов к центру другой стрелки, например

           C
           |
           |
           V
   A ------------> B

Я попытался вставить невидимый узел на пересечении стрелок.Это, однако, приводит к появлению «растрескавшейся» стрелки A ---> B, поскольку точка действительно представляет ее как две независимые стрелки.Это возможно даже с точкой?

Спасибо за предложения и помощь!

Грегор

Ответы [ 2 ]

10 голосов
/ 08 января 2011

Опираясь на ответ Спентил, чтобы избавиться от перегиба:

digraph {
  ab[label="", fixedsize="false", width=0, height=0, shape=none];

  a -> ab[arrowhead=None];
  ab -> b;
  c -> ab;

  {rank=same; a; ab; b};
}

Выход:

graphviz output

Другая возможность - сыграть с атрибутом weight ребер, чтобы выровнять ребра.

5 голосов
/ 15 сентября 2010

Следующее предотвращает «потрескавшиеся» стрелки. К сожалению, точка вводит излом между ребрами a -> ab и ab->b. Не в курсе алгоритма компоновки, который мешает этому.

digraph {
  a;
  ab[label="", fixedsize="false", width=0, height=0, shape=none];
  b;
  c;

  a -> ab[arrowhead=None];
  ab -> b;
  c -> ab;
}

Выход:

alt text

...