مخططات GraphViz

   

يصف هذا المستند كيفية إنشاء مخططات GraphViz باستخدام Chart API.

نظرة عامة

GraphViz هي حزمة من الأدوات مفتوحة المصدر لتصوير الرسوم البيانية للاتصال. يمكنك إنشاء رسوم بيانية GraphViz باستخدام لغة القسم المخصّص واختيارات محركات التنسيق، واختيار ما يناسبك منها.

تتيح مخططات GraphViz مجموعة مختلفة من المعلمات المطلوبة. وفي ما يلي المعلَمات المتوافقة:

المَعلمة مطلوبة أو اختيارية الوصف
cht=gv[:<opt_engine>] مطلوب

تحدِّد هذه السياسة رسمًا بيانيًا على GraphViz. يمكنك اختياريًا تحديد محرّك GraphViz. إذا كنت تريد تحديد محرّك تصميم، أدرِج الفاصلة المنقوطة : في حقل <opt_engine>:

  • dot - المحرّك التلقائي
  • neato
  • twopi
  • circo
  • fdp

يمكنك زيارة موقع GraphViz الإلكتروني للحصول على وصف لهذه المحرّكات المختلفة.

chs=<width>x<height> اختيارية إذا لم تحدِّد حجمًا، سيتم تحديد حجم الرسم البياني تلقائيًا.
chl=<DOT_string> مطلوب الرسم البياني المطلوب رسمه بتدوين لغة القسم "إدارة الاتصالات". يمكنك العثور على مرجع اللغة في وزارة النقل على موقع 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 الحالية:

  • يجب عدم استخدام السمة size graph، بل استخدِم مَعلمة Chart API chs بدلاً منها.
  • الحد الأقصى لعدد العُقد هو 200، والحد الأقصى للحواف هو 400.
  • ولا تتوفر ميزات منع التشويش والشفافية والخطوط البديلة.
  • إنّ سمتَي node image وshapefile غير متوافقتَين، وسيؤديان إلى حدوث خطأ في حال توفّره.
  • سمات graph هي ratio وmargin وpad غير متوافقة، وسيتم تجاهلها في حال توفّرها.