2013-03-03 25 views
18

Noktaları yalnızca noktalar arasındaki dikey veya yatay kenarları göstermeye zorlamak istiyorum.Dik olarak (dikey veya yatay) kenarları nokta ile hizalama

Ben şu grafiği oluşturmak ...

Ben yazı Family tree layout with Dot/GraphViz benzer bir isteği bulduk, ama ağaçları ile uğraşan değilim, bu yüzden takmadan ekstra düğümler olmadan bir çözümü var umut:

 
digraph G { 

    splines=ortho 

    A [ shape=box ] 
    B [ shape=box ] 
    C [ shape=box ] 
    D [ shape=box ] 

    A -> B 
    A -> C 

    B -> D 
    C -> D 

} 

ne olsun şudur:

enter image description here

Ama bunun gibi bir grafik istiyorum:

enter image description here

Nasıl böyle bir render alabilirim?

Düzenleme: "splines" özniteliği beklendiği gibi çalışmıyor görünüyor ... Yanlış yaptığım bir şey var mı?

cevap

23

Sözdizimi doğru görünüyor.

enter image description here

sürüm var: Onu çalıştırdığınızda ben türlü() ortogonal kenar yönlendirme olsun?

Ortogonal kenar yönlendirmesinin yalnızca 28 Eylül 2010'dan itibaren ve daha yeni olan Graphviz sürümlerinde kullanılabileceğinden dolayı sorun. Tüm sistemlerin daha yeni sürümleri dolu değildir. Sistemimde download'a vardı ve 2.26.3'ten (26 Ocak 2010'dan) daha yeni bir versiyon almak için elle Graphviz'i kurdum. Eğer çizgiler bir viraj yapmak istiyorsanız

gerçek grafiği varsayarsak, 4'ten fazla düğümlerini içerir ve sen, grafikler ile uğraşırken nodesep niteliğini denemelisiniz ekstra (görünmez) düğüm eklemek istemiyorum. Aşağıdaki kod ve görüntüye bakın.

digraph G { 

    graph [splines=ortho, nodesep=1] 
    node [shape=record] 

    A -> {B, C} -> D 
} 

enter image description here

İlgili konular