แผนภูมิกราฟ

   

เอกสารนี้จะอธิบายวิธีสร้างแผนภูมิ 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
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 ของแผนภูมิเดียวกัน แผนภูมินีโต
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 และสูงสุดสำหรับ EDGE คือ 400
  • ไม่รองรับการลบรอยหยัก ความโปร่งใส และแบบอักษรสำรอง
  • ระบบไม่รองรับแอตทริบิวต์ node image และ shapefile และจะทำให้เกิดข้อผิดพลาด (หากมี)
  • ระบบไม่รองรับแอตทริบิวต์ graph ratio, margin และ pad และจะละเว้นหากมี