| DOT(1) | General Commands Manual | DOT(1) |
نام (NAME)
dot - فیلتری
برای ترسیم
گرافهای
جهتدار
neato - فیلتری
برای ترسیم
گرافهای
بدون جهت
twopi - فیلتری
برای
چینشهای
شعاعی
گرافها
circo - فیلتری
برای چینش
دایرهای
گرافها
fdp - فیلتری
برای ترسیم
گرافهای
بدون جهت
sfdp - فیلتری
برای ترسیم
گرافهای
بدون جهت
بزرگ
patchwork - فیلتری
برای
نقشههای
درختی
مربعیسازیشده
osage - فیلتری
برای
چینشهای
مبتنی بر
آرایه
خلاصه دستور (SYNOPSIS)
dot
[گزینهها]
[فایلها]
neato
[گزینهها]
[فایلها]
twopi
[گزینهها]
[فایلها]
circo
[گزینهها]
[فایلها]
fdp
[گزینهها]
[فایلها]
sfdp
[گزینهها]
[فایلها]
patchwork
[گزینهها]
[فایلها]
osage
[گزینهها]
[فایلها]
توضیحات (DESCRIPTION)
این برنامهها مجموعهای برای ترسیم گراف هستند. در واقع تنها یک برنامه اصلی وجود دارد؛ الگوریتمهای چینش مشخص به صورت افزونه (plugin) پیادهسازی شدهاند. بنابراین، آنها تا حد زیادی در تمامی گزینههای خط فرمان مشترک هستند.
dot گرافهای جهتدار را رسم میکند. این ابزار به خوبی بر روی گرافهای جهتدار بدون دور (DAG) و سایر گرافهایی که میتوانند به صورت سلسلهمراتبی رسم شوند یا دارای «جریان» طبیعی هستند، کار میکند.
neato گرافهای بدون جهت را با استفاده از مدل «فنر» و کاهش انرژی مربوطه ترسیم میکند (نگاه کنید به Kamada و Kawai، در نشریه Information Processing Letters 31:1، آوریل ۱۹۸۹).
twopi گرافها را با استفاده از یک چینش شعاعی ترسیم میکند (نگاه کنید به G. Wills، در Symposium on Graph Drawing GD'97، سپتامبر ۱۹۹۷). اساساً، یک گره به عنوان مرکز انتخاب شده و در مبدا قرار میگیرد. گرههای باقیمانده روی دنبالهای از دوایر هممرکز به مرکزیت مبدا قرار میگیرند، که هر کدام فاصله شعاعی ثابتی از دایره قبلی دارند. تمامی گرهها با فاصله ۱ از مرکز، روی دایره نخست قرار میگیرند؛ تمامی گرهها با فاصله ۱ از یک گره روی دایره نخست، روی دایره دوم قرار میگیرند؛ و به همین ترتیب.
circo گرافها را با استفاده از یک چینش دایرهای ترسیم میکند (نگاه کنید به Six و Tollis، در GD '99 و ALENEX '99، و Kaufmann و Wiese، در GD '02). این ابزار مؤلفههای دو‐متصل (biconnected) را شناسایی کرده و گرههای مؤلفه را روی یک دایره رسم میکند. سپس درخت block‐cutpoint با استفاده از یک الگوریتم شعاعی بازگشتی چیده میشود. تقاطع یالها در یک دایره با قرار دادن بیشترین تعداد یال ممکن روی محیط دایره، به حداقل میرسد. به ویژه، اگر مؤلفه بیرونیمسطح (outerplanar) باشد، چینش آن مسطح خواهد بود. اگر گرهای متعلق به چندین مؤلفه دو‐متصل غیربدیهی (non‐trivial) باشد، چینش، گره را در یکی از آنها قرار میدهد. به طور پیشفرض، این اولین مؤلفه غیربدیهی یافتشده در جستوجو از مؤلفه ریشه است.
fdp گرافهای بدون جهت را با استفاده از مدل «فنر» ترسیم میکند. این ابزار بر یک رویکرد مبتنی بر نیرو (force‐directed) در راستای ایده Fruchterman و Reingold تکیه دارد (مقایسه کنید با Software‐Practice & Experience 21(11)، ۱۹۹۱، صص ۱۱۲۹‐۱۱۶۴).
sfdp نیز گرافهای بدون جهت را با استفاده از مدل «فنر» توصیفشده در بالا ترسیم میکند، اما از یک رویکرد چندمقیاسی (multi-scale) برای ایجاد چینش گرافهای بزرگ در زمانی معقول و کوتاه بهره میگیرد.
patchwork گراف را به صورت یک نقشه درختی مربعیسازیشده (squarified treemap) رسم میکند (نگاه کنید به .M. Bruls et al، در «Squarified treemaps»، نشریه Proc. Joint Eurographics and IEEE TCVG Symp. on Visualization، ۲۰۰۰، صص ۳۳-۴۲). از خوشههای گراف برای تعیین درخت استفاده میشود.
osage گراف را با استفاده از ساختار خوشهای آن ترسیم میکند. برای یک خوشه معین، هر یک از زیرخوشههای آن به صورت درونی چیده میشوند. سپس زیرخوشهها به همراه سایر گرههای باقیمانده، بر اساس ویژگیهای pack و packmode خوشه بازچینی میشوند.
قالبهای خروجی (OUTPUT FORMATS)
Graphviz از یک سازوکار افزونهای توسعهپذیر برای رندرکنندههای خروجی خود بهره میبرد، بنابراین برای مشاهده اینکه نگارش نصبشده dot شما از چه قالبهای خروجی پشتیبانی میکند، میتوانید دستور ``dot -T:'' را اجرا کرده و پیام هشدار را بررسی کنید. همچنین، سازوکار افزونه از پیادهسازیهای چندگانه برای قالبهای خروجی پشتیبانی میکند که امکان ایجاد تنوع در رندرکنندهها و قالببندها را فراهم میآورد. برای مشاهده اینکه چه گونههایی برای یک قالب خروجی خاص در دسترس است، به عنوان مثال از ``dot -Tpng:'' استفاده کنید و برای اجبار استفاده از یک گونه خاص، به عنوان نمونه از ``dot -Tpng:gd'' استفاده نمایید.
به طور
سنتی، Graphviz از
موارد زیر
پشتیبانی
میکند:
-Tdot (قالب Dot
حاوی
اطلاعات
چینش)،
-Txdot (قالب Dot
حاوی
اطلاعات
کامل چینش)،
-Tps (قالب PostScript)،
-Tpdf (قالب PDF)،
-Tsvg -Tsvgz (گرافیک
برداری
ساختیافته
SVG)،
-Tfig (گرافیک XFIG)،
-Tpng (گرافیک
نقشهبیتی
png)،
-Tgif (گرافیک
نقشهبیتی
gif)،
-Tjpg -Tjpeg (گرافیک
نقشهبیتی
jpeg)،
-Tjson (اطلاعات xdot
کدگذاریشده
به صورت JSON)،
-Timap
(فایلهای imagemap
برای
کارگزارهای
httpd به ازای هر
گره یا یال
که دارای
ویژگی href
غیرتهی
است)،
-Tcmapx (نقشه
تصویری سمت
کلاینت
برای
استفاده در
html و xhtml).
قالبهای
خروجی
تکمیلی که
کمتر رایج
هستند یا
کاربردهای
خاصتری
دارند را
میتوان در
https://www.graphviz.org/doc/info/output.html
یافت.
افزونههای جایگزینی که از یک قالب خروجی مشخص پشتیبانی میکنند را میتوان از پیام خطای ناشی از افزودن ':' به انتهای نام قالب یافت؛ مانند -Tpng: نخستین افزونه فهرستشده همواره پیشفرض است.
از سوئیچ -P میتوان برای تولید گرافی از تمامی گونههای خروجی پشتیبانیشده توسط افزونهها در نصب محلی graphviz استفاده کرد..SH "زبان فایل گراف (GRAPH FILE LANGUAGE)" در اینجا خلاصهای از زبان فایل گراف آمده است که معمولاً از پسوند .gv برای گرافها استفاده میکند:
[strict] (graph|digraph) name {
statement‐list }
گراف سطح
بالا (top‐level)
است. اگر
گراف strict
باشد،
یالهای
چندگانه
بین جفت
گرههای
یکسان مجاز
نیستند. اگر
یک گراف
جهتدار
باشد که با
digraph مشخص
میشود،
آنگاه edgeop
باید «->»
باشد. اگر یک
graph بدون جهت
باشد،
آنگاه edgeop
باید «--»
باشد.
دستورها (Statements) میتوانند موارد زیر باشند:
name=val;
node [name=val];
edge [name=val];
ویژگی
پیشفرض
گراف، گره
یا یال name را
روی val تنظیم
میکند. هر
زیرگراف،
گره یا یالی
که پس از این
بیاید،
ویژگیهای
پیشفرض
جدید را به
ارث
میبرد.
n0 [name0=val0,name1=val1,...];
گره n0 را
ایجاد
میکند (اگر
از قبل وجود
نداشته
باشد) و
ویژگیهای
آن را بر
اساس فهرست
اختیاری
تنظیم
مینماید.
n0 edgeop n1 edgeop ...
edgeop nn [name0=val0,name1=val1,...];
یالهایی
را بین
گرههای n0،
n1، ...، nn
ایجاد کرده
و
ویژگیهای
آنها را بر
اساس فهرست
اختیاری
تنظیم
میکند.
گرهها در
صورت نیاز
ایجاد
میشوند.
[subgraph name] {
statement‐list }
یک زیرگراف
ایجاد
میکند.
زیرگرافها
میتوانند
به جای n0، ...،
nn در
دستورهای
بالا برای
ایجاد
یالها به
کار روند. [subgraph
name] اختیاری
است؛ در
صورت نبود،
یک نام
داخلی به
زیرگراف
اختصاص
مییابد.
این زبان کامنتهای سبک C به هر دو صورت /*C...*/ یا //... را میپذیرد.
نامها و مقادیر ویژگیها رشتههای معمولی (سبک C) هستند. بخشهای بعدی ویژگیهایی را توصیف میکنند که چیدمان گراف را کنترل مینمایند.
شرح کاملتری از این زبان را میتوان در https://www.graphviz.org/doc/info/lang.html یافت.
ویژگیهای گراف، گره و یال (GRAPH, NODE AND EDGE ATTRIBUTES)
ابزار Graphviz از ویژگیهای name=value متصل به گرافها، زیرگرافها، گرهها و یالها، برای سفارشیسازی چیدمان و رندرینگ استفاده میکند. برجستهترین ویژگیها در زیر فهرست شدهاند. فهرست کامل در https://www.graphviz.org/doc/info/attrs.html موجود است.
ویژگیهای مشترک گرهها، یالها، خوشهها و گرافها (Attributes Common to Nodes, Edges, Clusters and Graphs)
href=url نشانی URL پیشفرض برای فایلهای Image map؛ در فایلهای PostScript، نشانی URL پایه برای تمام نشانیهای URL نسبی، همانطور که توسط Acrobat Distiller نسخه 3.0 به بالا شناسایی میشود.
URL=url (عبارت «URL» مترادفی برای «href» است.)
fontcolor=colorvalue رنگ متن برچسب را تعیین میکند.
یک colorvalue میتواند "h,s,v" (فام، اشباع، روشنایی یا hue, saturation, brightness) اعدادی با ممیز شناور بین 0 و 1، یا یک نام رنگ X11 مانند white, black, red, green, blue, yellow, magenta یا cyan، یا مقداری به صورت "#rrggbb" (قرمز، سبز، آبی، هر کدام ۲ نویسه هگزادسیمال) باشد. برای جزئیات بیشتر به https://www.graphviz.org/doc/info/attrs.html#k:color و https://www.graphviz.org/doc/info/colors.html مراجعه کنید.
fontsize=n اندازه قلم برچسب را روی n پوینت تنظیم میکند.
fontname=name نام خانواده قلم برچسب را تعیین میکند.
label=text که در آن text میتواند شامل خطوط جدید گریز داده شده \n، \l یا \r برای خطوط چینشیافته وسط، چپ و راست باشد. مقدار رشتهای '\G' با نام گراف جایگزین خواهد شد. برای برچسبهای گره، مقدار رشتهای '\N' با نام گره جایگزین خواهد شد. برای یالها، اگر زیررشته '\T' در یک برچسب یافت شود، با نام گره مبدا (tail) جایگزین خواهد شد؛ اگر زیررشته '\H' در یک برچسب یافت شود، با نام گره مقصد (head) جایگزین خواهد شد؛ اگر مقدار زیررشته '\E' در یک برچسب یافت شود، با: tail_node_name->head_node_name یا برای گرافهای غیرجهتدار با: tail_node_name--head_node_name جایگزین خواهد شد.
همچنین Graphviz از برچسبهای ویژه شبیه به HTML برای ساخت محتوای پیچیده گره پشتیبانی میکند. شرح کامل این موارد در https://www.graphviz.org/doc/info/shapes.html#html آمده است.
اگر گره دارای shape=record باشد، برچسب میتواند حاوی فهرستهای بازگشتی از کادرها باشد که با { | } از هم جدا شدهاند. شناسههای درگاه (Port) در برچسبها با قلابهای زاویهدار < > مشخص میشوند.
ویژگیهای گراف (Graph Attributes)
size="x,y" حداکثر کادر احاطهکننده (bounding box) ترسیم را بر حسب اینچ مشخص میکند.
ratio=f نسبت ابعاد (aspect ratio) را روی f تنظیم میکند که میتواند یک عدد ممیز شناور یا یکی از کلیدواژههای fill، compress یا auto باشد.
layout=engine موتور چیدمان ترجیحی (dot، neato، fdp و غیره) را مشخص میکند که پیشفرض حاصل از نام پایه دستور یا گزینه خط فرمان -K را بازنویسی مینماید.
margin=f حاشیه صفحه را تنظیم میکند (در اندازه صفحه گنجانده شده است).
ordering=out ترتیب یالهای خروجی در یک زیرگراف را مطابق با توالی آنها در فایل محدود میکند.
rotate=90 حالت افقی (landscape) را فعال میکند. (orientation=land برای سازگاری با نسخههای پیشین حفظ شده اما منسوخ است.)
center=n مقداری غیر صفر، ترسیم را در مرکز صفحه قرار میدهد.
color=colorvalue رنگ پیشزمینه را تعیین میکند (bgcolor برای پسزمینه).
overlap=mode. این ویژگی مشخص میکند که الگوریتم در صورت همپوشانی گرهها چه کاری باید انجام دهد. اگر حالت false باشد، برنامه از الگوریتم Prism برای تنظیم گرهها جهت حذف همپوشانیها استفاده میکند. اگر حالت scale باشد، چیدمان به طور یکنواخت بزرگنمایی میشود، در حالی که اندازه گرهها حفظ شده، تا زمانی که گرهها دیگر همپوشانی نداشته باشند. روش دوم همپوشانیها را با حفظ تقارن و ساختار حذف میکند، در حالی که روش اول همپوشانیها را به شکل فشردهتری حذف میکند اما تقارنها را از بین میبرد. اگر حالت true باشد (پیشفرض)، هیچ تغییر مکانی انجام نمیشود. از آنجا که الگوریتم dot همیشه چیدمانی بدون همپوشانی گرهها تولید میکند، این ویژگی فقط با سایر چیدمانها کاربرد دارد.
stylesheet="file.css" ارجاعی به یک برگه شیوهنامه (stylesheet) را در خروجیهای -Tsvg و -Tsvgz میافزاید. توسط سایر قالبها نادیده گرفته میشود.
splines اگر روی true تنظیم شود، یالها به صورت اسپلاین رسم میشوند. اگر روی polyline تنظیم شود، یالها به صورت چندخطی رسم میشوند. اگر روی ortho تنظیم شود، یالها به صورت چندخطی عمود بر هم رسم میشوند. در تمام این موارد، گرهها نباید همپوشانی داشته باشند. اگر splines=false یا splines=line باشد، یالها به صورت پارهخط رسم میشوند. مقدار پیشفرض برای dot برابر با true و برای همه چیدمانهای دیگر false است.
(ویژگیهای
ویژه dot)
nodesep=f حداقل فاصله بین گرهها را تعیین میکند.
ranksep=f حداقل فاصله بین رتبهها (ranks) را تعیین میکند.
rankdir=LR|RL|BT ترسیمی از چپ به راست، راست به چپ، یا پایین به بالا را درخواست میکند.
rank=same (یا min یا max) در یک زیرگراف تخصیص رتبه به گرههای آن را مقید میکند. اگر نام یک زیرگراف دارای پیشوند cluster باشد، گرههای آن در یک مستطیل متمایز از چیدمان رسم میشوند. خوشهها میتوانند تو در تو باشند.
(ویژگیهای
ویژه neato)
mode=val.
الگوریتم
برای
کمینهسازی
انرژی در
چیدمان. به
طور
پیشفرض،
neato از Stress Majorization
استفاده
میکند. اگر
mode=KK باشد، از
نسخهای از
شیب کاهشی (Gradient
Descent) استفاده
میکند.
model=val. مدل neato فواصل مطلوب بین تمام جفت راسها را محاسبه میکند. به طور پیشفرض، از طول کوتاهترین مسیر استفاده مینماید. اگر model روی circuit تنظیم شود، یک مدل مقاومت مداری به کار گرفته میشود. اگر model روی subset تنظیم شود، از مدلی استفاده میکند که در آن طول یال برابر است با تعداد گرههایی که دقیقاً همسایه یکی از راسهای آن یال هستند.
start=val. مکانیابی اولیه تصادفی را درخواست کرده و مولد اعداد تصادفی را مقداردهی اولیه (seed) میکند. اگر val یک عدد صحیح نباشد، شناسه فرایند (PID) یا زمان فعلی به عنوان مقدار اولیه استفاده میشود.
epsilon=n. حد آستانه توقف حلکننده را تعیین میکند. پیشفرض 0.1 است.
(ویژگیهای
ویژه twopi)
root=ctr. گرهای
را که باید
به عنوان
مرکز
چیدمان
استفاده
شود مشخص
میکند. در
صورت عدم
تعیین، twopi
به طور
تصادفی یکی
از
گرههایی
را که
بیشترین
فاصله را از
یک گره برگ
دارند
انتخاب
میکند، که
در آن گره
برگ گرهی با
درجه ۱ است.
اگر هیچ گره
برگی وجود
نداشته
باشد، یک
گره دلخواه
به عنوان
مرکز
انتخاب
میشود.
ranksep=val. فاصله شعاعی بر حسب اینچ را بین دنباله حلقهها مشخص میکند. پیشفرض 0.75 است.
(ویژگیهای
ویژه circo)
root=nodename. نام
گرهای را
که در بلوک
ریشه قرار
دارد مشخص
میکند. اگر
گراف
ناپیوسته
(ناهمبند)
باشد،
ویژگی گره
root میتواند
برای مشخص
کردن
بلوکهای
ریشه اضافی
به کار رود.
mindist=value. حداقل فاصله بین تمام گرهها را تعیین میکند. اگر مشخص نشود، circo از مقدار پیشفرض 1.0 استفاده میکند.
(ویژگیهای
ویژه fdp)
K=val. جداسازی
ایدهآل
پیشفرض
گرهها را
در چیدمان
تعیین
میکند.
maxiter=val. حداکثر تعداد تکرارها (iterations) را برای چیدمان گراف تعیین میکند..PP start=val. جایگذاری اولیه تصادفی گرههایی را که موقعیت مشخصی ندارند تنظیم میکند. اگر val یک عدد صحیح باشد، بهعنوان بذر (seed) برای تولیدکننده اعداد تصادفی استفاده میشود. اگر val یک عدد صحیح نباشد، یک عدد صحیح تصادفی تولیدشده توسط سیستم، مانند شناسه فرایند (process ID) یا زمان فعلی، بهعنوان بذر استفاده میشود.
ویژگیهای گره (Node Attributes)
height=d یا width=d حداقل ارتفاع یا پهنا را تنظیم میکند. افزودن fixedsize=true این مقادیر را به اندازه واقعی تحمیل میکند (برچسبهای متنی نادیده گرفته میشوند).
shape=builtin_polygon record epsf
builtin_polygon
میتواند
مقادیری
نظیر plaintext, ellipse, oval, circle,
egg, triangle, box, diamond, trapezium, parallelogram, house,
hexagon, octagon, note, tab, box3d, or component, و
موارد دیگر
باشد.
(چندضلعیها
توسط
ویژگیهای
گره زیر
تعریف یا
اصلاح
میشوند:
regular، peripheries، sides،
orientation، distortion و skew.)
epsf از ویژگی
shapefile گره
بهعنوان
مسیر یک
فایل EPSF
خارجی
استفاده
میکند تا
بهطور
خودکار
برای شکل
گره
بارگذاری
شود.
برای توضیحات کامل اشکال گرهها، https://www.graphviz.org/doc/info/shapes.html را ببینید.
color=colorvalue رنگ خط دور و رنگ پیشفرض پر کردن را در صورتی که style=filled باشد و fillcolor مشخص نشده باشد، تنظیم میکند.
fillcolor=colorvalue رنگ پر کردن را در زمان style=filled تنظیم میکند. در صورت مشخص نشدن، fillcolor در زمان style=filled بهطور پیشفرض همانند رنگ خط دور خواهد بود.
style=filled solid dashed dotted bold invis
xlabel="text" برچسبی را مشخص میکند که در نزدیکی، اما خارج از یک گره قرار میگیرد. رشته عادی label در درون شکل گره قرار میگیرد.
target="target" یک رشته هدف برای imagemapهای سمت کلاینت (client‐side) و SVG است که در صورت داشتن URL برای گرهها مؤثر خواهد بود. رشته target برای تعیین اینکه کدام پنجره مرورگر برای URL استفاده شود به کار میرود. تنظیم آن روی "_graphviz" در صورت عدم وجود، یک پنجره جدید باز میکند و در صورت وجود، مجدداً از همان استفاده میکند. اگر رشته target خالی باشد (حالت پیشفرض)، هیچ ویژگی targetای در خروجی گنجانده نمیشود. زیررشتههای '\N' و '\G' به همان شیوه ویژگی برچسب گره جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب گره جایگزین میشود.
tooltip="text" یک رشته راهنمای ابزار (tooltip) برای imagemapهای سمت کلاینت و SVG است که در صورت داشتن URL برای گرهها مؤثر واقع میشود. رشته tooltip بهطور پیشفرض همانند رشته برچسب است، اما این ویژگی به گرههای بدون برچسب اجازه میدهد همچنان دارای tooltip باشند و در نتیجه گرافهای فشردهتری ایجاد شود. زیررشتههای '\N' و '\G' به همان شیوه ویژگی برچسب گره جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب گره جایگزین میشود.
ویژگیهای زیر تنها برای گرههای با شکل چندضلعی اعمال میشوند:
regular=n اگر n غیرصفر باشد، چندضلعی منتظم ساخته میشود؛ یعنی نسبت به محورهای x و y متقارن خواهد بود، در غیر این صورت چندضلعی نسبت ابعاد برچسب را به خود میگیرد. چندضلعیهای builtin_polygons که از قبل منتظم نیستند با این ویژگی منتظم میشوند. چندضلعیهای builtin_polygons که از قبل منتظم هستند تحت تأثیر قرار نمیگیرند (یعنی نمیتوان آنها را نامتقارن ساخت).
peripheries=n تعداد خطوط پیرامونی رسمشده در اطراف چندضلعی را تعیین میکند. این مقدار جایگزین تعداد خطوط پیرامونی در builtin_polygons میشود.
sides=n تعداد اضلاع چندضلعی را تعیین میکند. n<3 منجر به یک بیضی میشود. این ویژگی توسط builtin_polygons نادیده گرفته میشود.
orientation=f جهت رأس اول چندضلعی را در خلاف جهت عقربههای ساعت نسبت به خط عمود، بر حسب درجه تعیین میکند. f میتواند یک عدد اعشاری باشد. جهت برچسبها تحت تأثیر این ویژگی قرار نمیگیرد. این ویژگی به جهت اولیه builtin_polygons اضافه میشود.
distortion=f مقدار پهنشدن بالا و باریکشدن پایین چندضلعی را (نسبت به جهت آن) تعیین میکند. مقادیر ممیز شناور بین -1 و +1 پیشنهاد میشوند. این ویژگی توسط builtin_polygons نادیده گرفته میشود.
skew=f مقدار جابهجایی به راست در بالا و جابهجایی به چپ در پایین چندضلعی را (نسبت به جهت آن) تعیین میکند. مقادیر ممیز شناور بین -1 و +1 پیشنهاد میشوند. این ویژگی توسط builtin_polygons نادیده گرفته میشود.
(ویژگیهای
ویژه circo)
root=true/false. این
ویژگی مشخص
میکند که
بلوک حاوی
گره
دادهشده
بهعنوان
ریشه درخت
پوشا در
چینش در نظر
گرفته شود.
(ویژگیهای
ویژه neato و fdp)
pin=val. اگر val
برابر true
باشد، گره
در موقعیت
اولیه خود
باقی خواهد
ماند.
ویژگیهای یال (Edge Attributes)
weight=val که در آن val هزینه یال است. برای dot، وزنها باید اعداد صحیح غیرمنفی باشند. مقادیر بزرگتر از ۱ متمایل به کوتاهتر کردن یال هستند؛ یالهای افقی با وزن ۰ برای ترتیببندی گرهها نادیده گرفته میشوند. در twopi، وزن ۰ باعث میشود یال در ساخت درخت پوشای زیرین نادیده گرفته شود. برای neato و fdp، وزن بیشتر تأکید بیشتری بر الگوریتم میگذارد تا به طول یالی نزدیکتر به مقدار تعیینشده توسط ویژگی len آن یال دست یابد.
style=solid dashed dotted bold invis
color=colorvalue رنگ خط را برای یالها تنظیم میکند.
color=colorvaluelist فهرستی از colorvalue جداشده با ':' که یالهای موازی ایجاد میکند، یک یال به ازای هر رنگ.
dir=forward back both none جهت پیکان را کنترل میکند.
tailclip,headclip=false برش شکل در نقاط انتهایی را غیرفعال میکند.
target="text" یک رشته هدف برای imagemapهای سمت کلاینت و SVG است که در صورت داشتن URL برای یالها مؤثر خواهد بود. اگر رشته target خالی باشد (حالت پیشفرض)، هیچ ویژگی targetای در خروجی گنجانده نمیشود. زیررشتههای '\T'، '\H'، '\E' و '\G' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود.
tooltip="text" یک رشته راهنمای ابزار برای imagemapهای سمت کلاینت است که در صورت داشتن URL برای یالها مؤثر خواهد بود. رشته tooltip بهطور پیشفرض همانند رشته برچسب یال است. زیررشتههای '\T'، '\H'، '\E' و '\G' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود.
arrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, tee, empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow. شکل نشانهای (glyph) را تعیین میکند که در محل برخورد یال به ترتیب با گره سر یا دم ظاهر میشود. توجه داشته باشید که این تنها شکل را مشخص میکند؛ ویژگی dir تعیین میکند که نشانه رسم شود یا خیر.
arrowsize=val یک ضریب مقیاس ضربی برای اندازه نوک پیکان تعیین میکند. inv_length=6,inv_width=7,dot_radius=2)
headlabel,taillabel=text برای برچسبهایی که در نزدیکی گرههای سر و دم یک یال ظاهر میشوند. labelfontcolor، labelfontname، labelfontsize برای برچسبهای سر و دم. زیررشتههای '\T'، '\H'، '\E' و '\G' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود.
headhref="url" نشانی url را برای درگاه سر در فایلهای imagemap، PostScript و SVG تنظیم میکند. زیررشتههای '\T'، '\H'، '\E' و '\G' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود.
headURL="url" (headURL مترادفی برای headhref است.)
headtarget="headtarget" یک رشته هدف برای imagemapهای سمت کلاینت و SVG است که در صورت داشتن URL برای سر یالها مؤثر خواهد بود. رشته headtarget برای تعیین اینکه کدام پنجره مرورگر برای URL استفاده شود به کار میرود. اگر رشته headtarget خالی باشد (حالت پیشفرض)، headtarget بهطور پیشفرض همان مقدار target برای یال را میگیرد. زیررشتههای '\T'، '\H'، '\E' و '\G' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود.
headtooltip="tooltip" یک رشته راهنمای ابزار برای imagemapهای سمت کلاینت است که در صورت داشتن URL برای درگاههای سر مؤثر خواهد بود. رشته tooltip بهطور پیشفرض همانند رشته headlabel است. زیررشتههای '\T'، '\H' و '\E' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود.
tailhref="url" نشانی url را برای درگاه دم در فایلهای imagemap، PostScript و SVG تنظیم میکند. زیررشتههای '\T'، '\H'، '\E' و '\G' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود.
tailURL="url" (tailURL مترادفی برای tailhref است.)
tailtarget="tailtarget" یک رشته هدف برای imagemapهای سمت کلاینت و SVG است که در صورت داشتن URL برای دم یالها مؤثر خواهد بود. رشته tailtarget برای تعیین اینکه کدام پنجره مرورگر برای URL استفاده شود به کار میرود. اگر رشته tailtarget خالی باشد (حالت پیشفرض)، tailtarget بهطور پیشفرض همان مقدار target برای یال را میگیرد. زیررشتههای '\T'، '\H'، '\E' و '\G' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود.
tailtooltip="tooltip" یک رشته راهنمای ابزار برای imagemapهای سمت کلاینت است که در صورت داشتن URL برای درگاههای دم مؤثر خواهد بود. رشته tooltip بهطور پیشفرض همانند رشته taillabel است. زیررشتههای '\T'، '\H'، '\E' و '\G' به همان شیوه ویژگی برچسب یال جایگزین میشوند. علاوه بر این، زیررشته '\L' با رشته برچسب یال جایگزین میشود..PP labeldistance و labelangle (به درجه، در خلاف جهت عقربههای ساعت) جایگاه برچسبهای سر (head) و ته (tail) را مشخص میکنند.
decorate خطی از یال به برچسب رسم میکند.
samehead,sametail یالهای دارای مقدار یکسان را با استفاده از میانگین نقطه فرود، به یک درگاه (port) یکسان هدایت میکنند.
(ویژگیهای
مختص dot)
constraint=false باعث
میشود یک
یال در
تخصیص رتبه
(rank) نادیده
گرفته شود.
minlen=n که در آن n یک ضریب عدد صحیح است که بر طول یال اعمال میشود (رتبهها برای یالهای عادی، یا حداقل فاصله بین گرهها برای یالهای همسطح).
xlabel="text" با برچسبهای یال در dot مانند انواع خاصی از گرهها رفتار میشود و در طول چینش گرهها برای آنها فضا تخصیص مییابد. این کار گاهی میتواند مسیریابی یال را دچار بدشکلی کند. اگر بهجای آن از یک xlabel استفاده شود، برچسب پس از تعیین موقعیت همه گرهها و یالها قرار داده میشود. در مقابل، این امر ممکن است منجر به مقداری همپوشانی بین برچسبها شود.
(ویژگیهای
مختص neato و fdp)
len=f طول
بهینه یک
یال را
تنظیم
میکند.
مقدار
پیشفرض 1.0
است.
گزینههای خط فرمان (COMMAND‐LINE OPTIONS)
-G یک
ویژگی
پیشفرض
گراف را
تنظیم
میکند.
-N یک ویژگی
پیشفرض
گره را
تنظیم
میکند.
-E یک ویژگی
پیشفرض
یال را
تنظیم
میکند.
مثال: -Gsize="7,8" -Nshape=box
-Efontsize=8
--filepath=path از path بهعنوان یک پیشوند برای یافتن فایلهای ارجاعدادهشده بیرونی استفاده میکند. برای نمونه، استفاده از --filepath=bar/baz باعث میشود فایل foo.png در image="foo.png" بهصورت bar/baz/foo.png بر روی دیسک جستجو شود. این گزینه هر مقدار imagepath تنظیمشده در خط فرمان یا بهصورت ویژگی در منبع گراف ورودی را نادیده گرفته و جایگزین میکند.
-lfile فایلهای کتابخانه سفارشی PostScript را بارگذاری میکند. این فایلها معمولاً اشکال یا سبکهای سفارشی را تعریف میکنند. اگر -l بهتنهایی داده شود، کتابخانه استاندارد حذف میشود.
-Tlang زبان خروجی را همانطور که در بالا شرح داده شد تعیین میکند.
-n[1|2] (عملیات صوری / no‐op) در صورت تنظیم، neato فرض میکند که گرهها از پیش موقعیتدهی شدهاند و تمام گرهها دارای ویژگی pos هستند که موقعیتها را مشخص میکند. سپس بر اساس مقدار ویژگی overlap، یک تنظیم اختیاری برای حذف همپوشانی گره‐گره انجام میدهد، چینش یالها را وابسته به مقدار ویژگی splines محاسبه میکند، و گراف را در قالب مناسب ارائه میدهد. اگر num تعیین شود، اقدامات زیر رخ میدهد:
num = 1معادل با -n.
num > 1استفاده از موقعیت گرهها همانطور که مشخص شده است، بدون هیچ تنظیمی برای رفع همپوشانیهای گره‐گره، و استفاده از هرگونه چینش یالی که از پیش توسط ویژگی pos تعیین شده است. neato برای هر یالی که ویژگی pos ندارد، چینش یال را محاسبه میکند. طبق معمول، چینش یال توسط ویژگی splines هدایت میشود.
num = 3همچنین انتهای یالها را به لبههای گرهها منطبق میکند.
-Klayout موتور چینش پیشفرض را که از نام دستور برداشت میشود، بازنویسی و لغو میکند.
-O نام فایلهای خروجی را بهطور خودکار بر اساس نام فایل ورودی و قالب -T تولید میکند.
-P یک گراف از افزونههای در دسترس فعلی تولید میکند.
-v (مشروح / verbose) اطلاعات گوناگونی را که برای اشکالزدایی مفید است چاپ میکند.
-c پیکربندی افزونهها.
-qlevel سطح فرونشانی پیامها را تعیین میکند. مقدار پیشفرض 1 است.
-sfscale ورودی را با ضریب fscale مقیاسبندی میکند؛ مقدار پیشفرض 72 است.
-y مختصات y را در خروجی معکوس میکند.
-ofile خروجی را در file مینویسد.
-x گراف را کاهش میدهد (reduce).
-Lg از شبکه چهارخانهای (grid) استفاده نمیکند.
-LO از نیروی ربایش قدیمی استفاده میکند.
-Lml مقدار m‐limit (آستانه فاصلهای که در آن نیروی دافعه به ۰ تضعیف میشود) را به l تنظیم میکند. اگر تنظیم نشود، پیشفرض بینهایت است (نیروی دافعه همیشه اعمال میشود).
-Lni تعداد تکرارها را به i تنظیم میکند.
-LUi ضریب مقیاسبندینشده را به i تنظیم میکند.
-LCv ضریب انبساط همپوشانی را به v تنظیم میکند.
-LT[*]v دما (ضریب دما) را به v تنظیم میکند.
-V (نسخه) اطلاعات نسخه را چاپ میکند و خارج میشود.
-? راهنمای نحوه استفاده را چاپ کرده و خارج میشود.
توضیحات کامل گزینههای خط فرمان موجود در نشانی زیر قابل مشاهده است: https://www.graphviz.org/doc/info/command.html
مثالها (EXAMPLES)
digraph test123 {
a -> b -> c;
a -> {x y};
b [shape=box];
c [label="hello\nworld",color=blue,fontsize=24,
fontname="Palatino-Italic",fontcolor=red,style=filled];
a -> z [label="hi", weight=100];
x -> z [label="multi-line\nlabel"];
edge [style=dashed,color=red];
b -> x;
{rank=same; b x}
}
graph test123 {
a -- b -- c;
a -- {x y};
x -- c [w=10.0];
x -- y [w=5.0,len=3];
}
اسپلاینهای یالها ممکن است بهطور ناخواسته دچار همپوشانی شوند.
برچسبهای یالهای همسطح تا حدودی ناقص هستند. برچسبهای یالهای بینخوشهای کاملاً از کار افتاده هستند.
به دلیل استفاده از بهینهسازی نامقید، ممکن است کادرهای گره با یالهای نامرتبط همپوشانی داشته باشند یا با آنها تماس پیدا کنند. به نظر میرسد تمامی مدلهای جانمایی فنری موجود دارای این محدودیت هستند.
تلاشهای ظاهراً معقول برای تثبیت (پین کردن) گرهها یا تنظیم طولها و وزنهای یالها میتواند موجب ناپایداری شود.
نویسندگان (AUTHORS)
Stephen C. North <north@research.att.com>
Emden R. Gansner <erg@graphviz.org>
John C. Ellson <ellson@research.att.com>
Yifan Hu <yifanhu@yahoo.com>
درایور نگاشتبیتی (PNG، GIF و غیره) توسط Thomas Boutell نوشته شده است، http://www.boutell.com/gd
رندرکننده قلمهای Truetype متعلق به پروژه Freetype (شامل David Turner، Robert Wilhelm و Werner Lemberg) است (که میتوان با آنها از طریق freetype-devel@lists.lrz-muenchen.de ارتباط برقرار کرد).
همچنین ببینید (SEE ALSO)
این صفحه راهنما تنها شامل بخش کوچکی از اطلاعات مرتبط با برنامههای صفحهآرایی Graphviz است. کاملترین اطلاعات را میتوان در https://www.graphviz.org/documentation، بهویژه در صفحات مرجع برخط یافت. بیشتر این اسناد در زیرشاخههای doc و doc/info در توزیعهای سورس و باینری نیز در دسترس هستند.
tcldot(n),xcolors(1),libcgraph(3).
E. R. Gansner, S. C. North, K. P. Vo, "DAG ‐ A Program
to Draw Directed Graphs", Software ‐ Practice and Experience
17(1), 1988, pp. 1047‐1062.
E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for
Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp.
214‐230.
S. North and E. Koutsofios, "Applications of graph visualization",
Graphics Interface 94, pp. 234‐245.
E. R. Gansner and E. Koutsofios and S. C. North, "Drawing Graphs with
dot," قابل
دسترسی در
https://www.graphviz.org/pdf/dotguide.pdf.
S. C. North, "NEATO User's Manual". قابل
دسترسی در
https://www.graphviz.org/pdf/neatoguide.pdf.
E. R. Gansner and Y. Hu, "Efficient, Proximity-Preserving Node Overlap
Removal", J. Graph Algorithms Appl., 14(1) pp. 53‐74, 2010.
نکات (NOTES)
در پلتفرمهای غیر ویندوزی، ارسال SIGUSR1 به Graphviz میتواند برای روشن و خاموش کردن گزارش برخی نقاط اضافی در کد neatogen مورد استفاده قرار گیرد.
| 12 January 2015 |