Graphviz เปลี่ยนขนาดของขอบ


92

จะเปลี่ยนขนาดขอบใน dot (graphviz) ได้อย่างไร? ฉันต้องการทำให้ขอบบางส่วนเป็น "ตัวหนา"

คำตอบ:


134

ฉันต้องการเสริมคำตอบของ shuvalov penwidthเป็นคำสั่งที่ถูกต้อง นอกจากนี้ใน penwidth คำตอบของshuvalovนั้นมีทั้งโหนดและคุณสมบัติ edge ด้วยเช่นกัน

ความแตกต่างที่ฉันต้องการสร้าง:

  • penwidthเมื่อใช้เป็นคุณสมบัติของโหนด (เช่น "NodeA" [penwidth = 5]) มีผลต่อน้ำหนักเส้นขอบสำหรับโหนดนั้น

  • penwidthเมื่อใช้เป็นสถานที่ให้บริการขอบมีผลต่อน้ำหนักของเส้นขอบ (ค่าเริ่มต้นคือ "1" ระบุ penwidth = 2 จะทำให้ขอบปรากฏในตัวหนาชนิด

  • หากคุณต้องการเปลี่ยนน้ำหนักเส้นของขอบคุณไม่จำเป็นต้องเปลี่ยนความ กว้างของเส้นสำหรับสองโหนดที่เชื่อมต่อด้วยขอบนั้น (ตามที่คำตอบของ shuvalev อาจแนะนำ)

  • สำหรับกราฟที่กำหนดทิศทาง (ขอบมีทิศทาง) คุณอาจต้องการเปลี่ยนขนาด / น้ำหนักของหัวลูกศรและ หางลูกศรพร้อมกับน้ำหนักขอบเพื่อให้ทั้งสามยังคงเป็นสัดส่วน

  • ความยาวของขอบสามารถเปลี่ยนแปลงได้โดยการตั้งค่าน้ำหนักคุณสมบัติเป็นที่อื่น ๆ , ค่าเริ่มต้นคือ 1.0; การเพิ่มมูลค่าดังกล่าวจะเพิ่มต้นทุนในการยืดขอบนี้ในระหว่างการแสดงผล (กล่าวคืออัลกอริทึมการวาดจะใช้บทลงโทษที่สูงขึ้นกับโซลูชันที่ขอบนี้ยาวขึ้น) สังเกตว่าขอบ 1 ถึง 4 สั้นกว่าขอบ 1 ถึง 2

รหัสต่อไปนี้ควรแสดงข้อมูลทั้งหมดนี้ กราฟที่แสดงผลจะแสดงด้านล่างโค้ด

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

ป้อนคำอธิบายภาพที่นี่


ด้วยเหตุผลบางอย่างweightคุณสมบัติไม่ได้เปลี่ยนแปลงอะไรสำหรับฉัน ส่วนที่เหลือมีประโยชน์มาก แต่ ... ขอบคุณ!
clozach

สิ่งนี้มีประโยชน์มากโดยเฉพาะกับภาพ - ช่วยให้ฉันเข้าใจความสัมพันธ์ที่นี่ ไวยากรณ์ของกราฟวิซค่อนข้างแปลกดังนั้นภาพที่สวยงามเช่นนี้จึงช่วยได้มาก ส่วนเดียวที่ฉันจะเปลี่ยนในข้างต้นจะเป็นการเพิ่มคำอธิบายอีกเล็กน้อยเกี่ยวกับ penwidth เพราะตอนนี้เส้นทั้งหมดเป็นตัวหนา (ฉันเปลี่ยนสิ่งนั้นขอบคุณด้านบน) แต่เส้นขอบรอบ ๆ แต่ละโหนดไม่ได้หนาขึ้นซึ่งตอนแรกฉันต้องการทำ ฉันอาจจะแก้ปัญหานี้ได้ในที่สุด แต่ในกรณีที่ฉันลืมเผยแพร่วิธีแก้ปัญหาที่นี่ฉันจะเพิ่มสิ่งนี้แทน :)
shevy

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.