Graphviz, kenarın boyutunu değiştiriyor


92

Nokta (graphviz) içindeki kenar boyutunu nasıl değiştirebilirim? Bazı kenarları "kalın" yapmak istiyorum.

Yanıtlar:


134

Shuvalov'un cevabını tamamlamak istedim. penwidth gerçekten doğru komuttur. Buna ek olarak, Shuvalov cevabı olarak penwidth olan hem bir düğüm ve bir kenar özelliği - aynı zamanda doğru.

Yapmak istediğim ayrım:

  • penwidth , bir düğüm özelliği olarak kullanıldığında (ör. "NodeA" [penwidth = 5]) o düğüm için sınır çizgisi ağırlığını etkiler

  • penwidth , bir kenar özelliği olarak kullanıldığında kenarının hattı ağırlığını etkiler (varsayılan değer "1" ise, belirten penwidth = 2 kenar görünür hale getirecek kalın tip

  • Bir kenarın çizgi ağırlığını değiştirmek istiyorsanız, bu kenarla bağlanan iki düğüm için kalem genişliğini değiştirmenize gerek yoktur (shuvalev'in cevabının önerebileceği gibi)

  • Bir için yönlendirilmiş grafik (kenarları yönü) aynı zamanda boyut / ağırlığını değiştirmek isteyen olabilir ok ve arrowtail birlikte, kenar ağırlıkça üç orantılı kalması, böylece,

  • uzunluk , bir kenarın ayarlayarak değiştirilebilir ağırlık başka yerlerde, varsayılan değer 1.0 olup, özelliği; bu değerin artırılması, işleme sırasında bu kenarın gerilme maliyetini artırır (yani, çizim algoritması, bu kenarın daha uzun olduğu çözümlere daha yüksek bir ceza uygular); 1'den 4'e kadar olan kenarın 1'den 2'ye kadar olan kenardan daha kısa olduğuna dikkat edin.

Aşağıdaki kod tüm bunları göstermelidir. Oluşturulan grafik, kodun altında gösterilmektedir.

digraph {
    /* declare the node & style them */
    "Node 1" [shape=diamond, penwidth=3, style=filled, fillcolor="#FCD975"];
    "Node 2" [style=filled,fillcolor="#9ACEEB" ];
    "Node 3" [shape=diamond, style=filled, fillcolor="#FCD975" ];
    "Node 4" [style=filled, fillcolor="#9ACEEB" ]

    /* declare the edges & style them */
    "Node 1" -> "Node 2" [dir=none, weight=1, penwidth=3] ;
    "Node 1" -> "Node 3" [dir=none, color="#9ACEEB"] ;
    "Node 1" -> "Node 4" [arrowsize=.5, weight=2.]
}

görüntü açıklamasını buraya girin


Nedense weightmülk benim için hiçbir şeyi değiştirmiyor. Gerisi çok faydalı, yine de… teşekkürler!
clozach

Bu, özellikle görüntü açısından çok yardımcı oldu - buradaki ilişkiyi anlamama yardımcı oldu. Graphviz sözdizimi biraz tuhaf, bu yüzden böyle güzel görüntüler gerçekten çok yardımcı oldu. Tek kısım, eğer yukarıdakileri değiştirirsem, kalem genişliği ile ilgili olarak biraz daha fazla açıklama eklemek olacaktır, çünkü şu anda satırların tümü kalın (yukarıdakiler sayesinde bunu değiştirdim), ancak etrafındaki sınır bireysel düğümler, başlangıçta yapmak istediğim daha kalın değil. Sonunda bu sorunu çözebilirim, ancak çözümü burada yayınlamayı unutursam, onun yerine bunu ekliyorum. :)
shevy

20

bunu dene:

"NodeA" [ penwidth = 5]
"NodeB" [ penwidth = 5]
NodeA->NodeB [ penwidth = 3]
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.