תרשימי GraphViz

   

במאמר זה נתאר כיצד ליצור תרשימי GraphViz באמצעות ממשק ה-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, והמספר המקסימלי של הצמתים הוא 400.
  • אין תמיכה בהחלקה , בשקיפות ובגופנים חלופיים.
  • אין תמיכה במאפייני ה-node image ו-shapefile. אם קיימים המאפיינים, תתקבל שגיאה.
  • מאפייני graph ratio, margin ו-pad אינם נתמכים. אם הם קיימים, המערכת תתעלם מהם.