แผนภูมิกราฟ

   

เอกสารนี้จะอธิบายวิธีสร้างแผนภูมิ GraphViz โดยใช้ Chart API

ภาพรวม

GraphViz เป็นแพ็กเกจเครื่องมือโอเพนซอร์สที่ทำให้เห็นภาพกราฟการเชื่อมต่อ คุณสร้างกราฟ GraphViz โดยใช้ภาษา DOT และเครื่องมือเลย์เอาต์ที่คุณเลือกได้

แผนภูมิ GraphViz รองรับพารามิเตอร์ที่จำเป็นชุดอื่น พารามิเตอร์ที่รองรับมีดังนี้

พารามิเตอร์ ต้องระบุหรือไม่บังคับ คำอธิบาย
cht=gv[:<opt_engine>] ต้องระบุ

ระบุแผนภูมิ GraphViz คุณจะระบุเครื่องมือ GraphViz หรือไม่ก็ได้ หากต้องการระบุเครื่องมือเลย์เอาต์ ให้ใส่เครื่องหมายอัฒภาค : ทำเครื่องหมายและระบุสตริงใดสตริงหนึ่งต่อไปนี้สำหรับ <opt_engine>

  • dot - เครื่องมือเริ่มต้น
  • neato
  • twopi
  • circo
  • fdp

ดูคำอธิบายเครื่องมือค้นหาต่างๆ เหล่านี้ได้ในเว็บไซต์ GraphViz

chs=<width>x<height> ไม่บังคับ หากคุณไม่ระบุขนาด ระบบจะปรับขนาดแผนภูมิให้โดยอัตโนมัติ
chl=<DOT_string> ต้องระบุ แผนภูมิที่จะวาดในรูปแบบภาษา DOT คุณดูข้อมูลอ้างอิงภาษาของ DOT ได้ในเว็บไซต์ GraphViz
chd ไม่ได้ใช้ โค้ด GraphViz มีความผิดปกติตรงที่ระบบจะไม่สนใจพารามิเตอร์ chd อย่ารวม URL ไว้ใน URL
chof=<output_format> ไม่บังคับ รูปแบบเอาต์พุตสำหรับแผนภูมิ ดูคำอธิบายพารามิเตอร์เพื่อดูรูปแบบเอาต์พุตที่รองรับ หากระบุ chof=json คุณจะได้รับการแสดงแผนภูมิในรูปแบบ JSON เป็นการแมปรูปภาพ HTML ซึ่งใช้เพื่อเพิ่มลิงก์หรือการโต้ตอบในแผนภูมิได้ ดูรายละเอียดได้ที่การสร้างแผนที่รูปภาพแผนภูมิ
callback=<handling_function_name> ไม่บังคับ หากระบุ chof=json คุณยังระบุฟังก์ชันที่จะเรียกด้วย JSON ที่แสดงผลซึ่งมีแผนที่รูปภาพของแผนภูมิได้อีกด้วย ฟังก์ชันต้องยอมรับพารามิเตอร์ JSON ตัวเดียว ซึ่งจะเป็นการแสดงแผนภูมิ JSON จากนั้นหน้าเว็บสามารถระบุแผนภูมิของคุณเป็นองค์ประกอบ <img> เพื่อแสดงแผนภูมิ รวมทั้งเรียกใช้ URL เดียวกันนี้ด้วย chof=json&callback=somefunc และยังมีฟังก์ชันชื่อ somefunc() ซึ่งจะแยกวิเคราะห์ JSON ที่แสดงผลและเพิ่มลิงก์หรือการโต้ตอบ

 

ตัวอย่างเช่น

คำอธิบาย ตัวอย่าง

ตัวอย่างเครื่องหมายจุด (ค่าเริ่มต้น)

แผนภูมิจุด
cht=gv
chl=digraph{A->B->C->A}
chs=150x150

ตัวอย่างเครื่องมือแบบ neato ของแผนภูมิเดียวกัน แผนภูมิ neato
cht=gv:neato
chl=digraph{A->B->C->A}
chs=150x150
แผนภูมิจุดที่ไม่ได้ระบุขนาด แผนภูมิจะปรับขนาดโดยอัตโนมัติ แผนภูมิจุดที่ไม่ได้ระบุขนาด
cht=gv
chl=graph{a--b--c;b--d}
แผนภูมิที่ซับซ้อนมากขึ้น แผนภูมิจุดที่น่าสนใจ
cht=gv
chl=
  graph{C_0--H_0[type=s];C_0--H_1[type=s];C_0--H_2[type=s];C_0--C_1[type=s];C_1--H_3[type=s];C_1--H_4[type=s];C_1--H_5[type=s]}

ต่อไปนี้เป็นเคล็ดลับและข้อจำกัดที่ทราบในแผนภูมิ GraphViz ปัจจุบัน

  • คุณไม่ควรใช้แอตทริบิวต์ graph size แต่ให้ใช้พารามิเตอร์ Chart API chs แทน
  • จำนวนโหนดสูงสุดคือ 200 รายการ และจำนวนโหนดสูงสุดสำหรับขอบคือ 400
  • ไม่รองรับการลดรอยหยัก ความโปร่งใส และแบบอักษรสำรอง
  • ระบบไม่รองรับแอตทริบิวต์ node image และ shapefile และจะทำให้เกิดข้อผิดพลาดหากมี
  • ระบบไม่รองรับแอตทริบิวต์ graph ratio, margin และ pad และระบบจะไม่สนใจแอตทริบิวต์ หากมี