Graphviz, mengubah ukuran tepi

92

Bagaimana cara mengubah ukuran tepi dalam titik (graphviz)? Saya ingin membuat beberapa tepi "dicetak tebal".

nama
sumber

Jawaban:

134

Saya ingin melengkapi jawaban shuvalov. penwidth memang perintah yang benar. Selain itu, dalam jawaban penwidth shuvalov adalah keduanya node dan properti tepi - juga benar.

Perbedaan yang ingin saya buat:

  • penwidth , saat digunakan sebagai properti node (misalnya, "NodeA" [penwidth = 5]) memengaruhi bobot garis batas untuk node tersebut

  • penwidth , bila digunakan sebagai properti tepi mempengaruhi berat garis tepi (nilai default adalah "1", menspesifikasikan penwidth = 2 akan membuat tepi muncul dalam huruf tebal jenis

  • jika Anda ingin mengubah ketebalan garis tepi, Anda tidak perlu mengubah lebar pena untuk dua node yang terhubung oleh tepi tersebut (seperti yang mungkin disarankan oleh jawaban shuvalev)

  • untuk graf berarah (tepi memiliki arah) Anda mungkin juga ingin mengubah ukuran / berat mata panah dan ekor panah , bersama dengan bobot tepi , agar ketiganya tetap proporsional

  • yang panjang dari tepi dapat diubah dengan menetapkan berat properti, seperti di tempat lain, nilai default adalah 1,0; meningkatkan nilai itu meningkatkan biaya peregangan tepi ini selama rendering (yaitu, algoritma gambar menerapkan penalti yang lebih tinggi untuk solusi di mana tepi ini lebih panjang); perhatikan bahwa tepi dari 1 hingga 4 lebih pendek dari tepi dari 1 hingga 2.

Kode berikut harus menggambarkan semua ini. Grafik yang diberikan ditampilkan di bawah kode.

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.]
}

masukkan deskripsi gambar di sini

doug
sumber
Untuk beberapa alasan weightproperti tidak mengubah apa pun untuk saya. Namun sisanya sangat membantu… terima kasih!
clozach
Ini sangat membantu, khususnya dengan gambar - membantu saya memahami hubungan di sini. Sintaks graphviz agak aneh, jadi gambar bagus seperti itu sangat membantu. Satu-satunya bagian, jika saya akan mengubah di atas, akan menambahkan sedikit lebih banyak penjelasan sehubungan dengan penwidth, karena saat ini semua garisnya tebal (saya mengubahnya, berkat yang di atas), tetapi perbatasan di sekitarnya node individu tidak lebih tebal, yang awalnya ingin saya lakukan. Saya mungkin bisa menyelesaikan masalah ini pada akhirnya, tetapi jika saya lupa menerbitkan solusi di sini, saya hanya menambahkan ini sebagai gantinya. :)
shevy
20

coba ini:

"NodeA" [ penwidth = 5]
"NodeB" [ penwidth = 5]
NodeA->NodeB [ penwidth = 3]
shuvalov.dll
sumber