2016-07-16 8 views
1

Я хотел бы указать край к другому краю в graphviz с использованием формата dot.Кромка, указывающая на край с Graphviz и Dot

То, что я получил до сих пор:

digraph G { 
Hello->dummy; 
dummy->World; 
dummy[shape=point width=0]; 
Test->dummy;} 

который производит

current status

, что я хотел бы получить что-то более похожее на это:

enter image description here

Любые идеи, как это сделать так?

Cheers!

+0

[Это ТАК сообщение] (http://stackoverflow.com/questions/4671238/forcing-main-line-nodes-into-a-straight-line- in-graphviz-or-alternatives) детализирует несколько трюков, чтобы заставить прямую линию. Но, похоже, что узлы, которые вы хотите быть в строке, должны находиться в одной группе (т. Е. Должны иметь одинаковые свойства). –

ответ

1

Возможно, rank = same делает трюк?

digraph G 
{ 
    { rank = same; Test; dummy }  // dummy and Test on the same level 
    dummy[ shape = point, width = 0 ];       // connector 
    Hello -> dummy[ arrowhead = none ]; // remove arrowhead to connector 
    dummy -> Test[ dir = back ];   // you want Test on the right side 
    dummy -> World; 
} 

дает

enter image description here

+0

Хм, это будет работать только на небольшом примере, подобном приведенному выше. Моя проблема в том, что я хотел бы построить «Расширенные рамки аргументации», где у вас много противоречивых атак и атак на атаки. Типичная сеть может выглядеть следующим образом: https://www.dropbox.com/s/qphs9uk1fxk88cn/Screenshot%202016-07-18%2017.26.43.png?dl=0 Как вы можете видеть, это было бы скорее трудно представить с помощью вышеуказанного подхода. Я знаю это из tikzpicture в латексе, что вы можете просто нарисовать края и определить, что в центре края есть опорная точка. Это было бы круто! – Sebastian