مخططات GraphViz

   

يشرح هذا المستند كيفية إنشاء مخططات 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 لنفس المخطط. مخطط 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، وسيتم تجاهلها إذا توفّرت.