graphviz overlap=ortho: горизонтальная компоновка

у меня есть неориентированный граф, сделанный graphviz tools (теперь я использую sfdp):

    digraph structs {
    node [shape=Mrecord, URL="index_new.php?object=N&overlap=false"];
    overlap = orthoxy;
    bgcolor=transparent;
    splines=true;
    rankdir=TB;
    node [fontname="Arial", fontsize=30, style=filled, fillcolor=chartreuse1, image="../common/img/monitor.png"]struct_swbposad91 [label = "sw-bposad9-1n192.168.17.141nC2960 "];
        node [fontname="Arial", fontsize=30, style=filled, fillcolor=chartreuse1, image="../common/img/monitor.png"]struct_swmedikov5fan [label = "sw-medikov5-fann192.168.34.134n "];
        node [fontname="Arial", fontsize=30, style=filled, fillcolor=chartreuse1, image="../common/img/monitor.png"]struct_swlevash131 [label = "sw-levash13-1n192.168.16.165nC2960 "];
        node [fontname="Arial", fontsize=30, style=filled, fillcolor=deepskyblue]struct_swpolevsabirov45a [label = "sw-polevsabirov45an192.168.18.182nS2300 "];
...lots of lines goes here...
struct_swkazan71:f450212->struct_swbmorsk181:f450213 [weight=1.2, dir=both, color=black, penwidth=5, arrowhead="empty", arrowtail="odot"];
        struct_swmikh171:f450222->struct_swbotk151:f450223 [weight=1.2, dir=both, color=black, penwidth=1, arrowhead="empty", arrowtail="odot"];
...lots of lines goes here...

вот полный код:http://pastebin.com/P3MKTCm2 (это действительно большой, извините)

и выход такой: (часть)

enter image description here

проблема: мне нужно, чтобы мой график, чтобы расти горизонтально, а не вертикально. Есть ли способ получить макет, как на изображении, но "повернутый" на 90 градусов?

2 ответов


несколько наблюдений, сделанных при попытке сделать что-то из графика:

  • график не большой, но разметка наверняка избыточна - я применил немного любви и удалил их, чтобы можно было прочитать его (см. ниже)
  • порты, используемые для ребер, не существуют, и graphviz генерирует нагрузку предупреждений. Хотя выход все еще генерируется, это, безусловно, не очень хорошо.
  • этой is ориентированный граф - digraph и -> используются для графа.
  • overlap=orthoxy кажется устаревшим:

остальные допустимые значения перекрытия соответствуют алгоритмам что в настоящее время может привести к плохому соотношению сторон. Кроме того, мы не рекомендуется использовать " ortho*"и" portho*".

под выходом при простом использовании overlap=false С sfdp, игнорируя все предупреждения и отсутствующие изображения:

digraph structs {
    overlap=false;
    bgcolor=transparent;
    splines=true;
    rankdir=TB;
    node [shape=Mrecord, URL="index_new.php?object=\N&overlap=false", fontname="Arial", fontsize=30, style=filled, fillcolor=chartreuse1, image="../common/img/monitor.png"];
    struct_swbposad91 [label = "sw-bposad9-1\n192.168.17.141\nC2960 "];
    struct_swmedikov5fan [label = "sw-medikov5-fan\n192.168.34.134\n "];
    struct_swlevash131 [label = "sw-levash13-1\n192.168.16.165\nC2960 "];
    struct_swkant121 [label = "sw-kant12-1\n192.168.19.9\nC3400 "];
    struct_swpolit91 [label = "sw-polit9-1\n192.168.18.102\n8012M "];
    struct_swbotk151 [label = "sw-botk15-1\n192.168.18.36\nC2960 "];
    struct_swmikh171 [label = "sw-mikh17-1\n192.168.18.37\nC2950 "];
    struct_swchapaeva17 [label = "sw-chapaeva17\n192.168.17.136\n8000S "];
    struct_swsamp871 [label = "sw-samp87-1\n192.168.19.7\nC2960 "];
    struct_swlig291 [label = "sw-lig29-1\n192.168.39.133\nC2960 "];
    struct_swbotk152 [label = "sw-botk15-2\n192.168.19.119\nC2960 "];
    struct_swkubin842 [label = "sw-kubin84-2\n192.168.31.131\nI2110A "];
    struct_swpugacheva571 [label = "sw-pugacheva5/7-1\n192.168.37.144\nI2110A "];
    struct_swbposad92 [label = "sw-bposad9-2\n192.168.17.142\nC3550 "];
    struct_swkapitolk177 [label = "sw-kapitol-k177\n192.168.40.134\n "];
    struct_swkapitolk338 [label = "sw-kapitol-k338\n192.168.40.131\n "];
    struct_swbmorsk181 [label = "sw-bmorsk18-1\n192.168.29.132\nC2960 "];
    struct_swpirog171 [label = "sw-pirog17-1\n192.168.18.40\nSuperStack "];
    struct_swkazan71 [label = "sw-kazan7-1\n192.168.19.228\nC2960 "];
    struct_cskazac9brd [label = "cs-kazac9-brd\n192.168.30.251\nCASR1002F "];
    struct_swgrib1261 [label = "sw-grib126-1\n192.168.19.235\nC2960 "];
    struct_swlenin1391 [label = "sw-lenin139-1\n192.168.31.144\nC2960 "];
    struct_swpirog151 [label = "sw-pirog15-1\n192.168.18.42\nI2110A "];
    struct_swrastr21 [label = "sw-rastr2-1\n192.168.36.130\nC2960 "];
    struct_swkazac92 [label = "sw-kazac9-2\n192.168.17.163\nC2960 "];
    struct_swsmolen331 [label = "sw-smolen33-1\n192.168.17.108\nC2950 "];
    struct_swkubin841 [label = "sw-kubin84-1\n192.168.31.134\nS2300 "];
    struct_swkurskaya40 [label = "sw-kurskaya40\n192.168.26.144\nI2110A "];
    struct_swvolkov171 [label = "sw-volkov17-1\n192.168.17.167\nC2960 "];
    struct_swtall71 [label = "sw-tall7-1\n192.168.37.147\nC2960 "];
    struct_swlevash132 [label = "sw-levash13-2\n192.168.16.174\n8000S "];
    struct_swpetrovkosa11 [label = "sw-petrovkosa1-1\n192.168.16.164\nC2950 "];
    struct_swobuh120e1 [label = "sw-obuh120e-1\n192.168.21.131\nC2960 "];
    struct_swkurch101 [label = "sw-kurch10-1\n192.168.18.104\nC2960 "];
    struct_swsamp873 [label = "sw-samp87-3\n192.168.19.57\nC2960 "];
    struct_swengelsa291 [label = "sw-engelsa29-1\n192.168.18.163\nC2960 "];
    struct_swsamp681 [label = "sw-samp68-1\n192.168.19.4\nC2950 "];
    struct_swsamp421 [label = "sw-samp42-1\n192.168.19.2\nS2300 "];
    struct_swbelovod71 [label = "sw-belovod7-1\n192.168.19.12\nS2300 "];
    struct_swoktyabr381 [label = "sw-oktyabr38-1\n192.168.37.149\n8000S "];
    struct_swural11 [label = "sw-ural1-1\n192.168.28.144\nI2110A "];
    struct_swsamp68style [label = "sw-samp68-style\n192.168.19.10\n8012M "];
    struct_swrevol69 [label = "sw-revol69\n192.168.37.141\n "];
    struct_swlig292 [label = "sw-lig29-2\n192.168.39.134\nSuperStack "];
    struct_swkolom331 [label = "sw-kolom33-1\n192.168.18.181\nC2950 "];
    struct_swchernigov15 [label = "sw-chernigov15\n192.168.26.133\nI2110A "];
    struct_swVO9line344 [label = "sw-VO9line34-4\n192.168.28.142\nI2110A "];
    struct_swbmorsk182 [label = "sw-bmorsk18-2\n192.168.29.133\nC2960 "];
    struct_swdom41 [label = "sw-dom4-1\n192.168.18.226\nC2960 "];
    struct_swnevsky301 [label = "sw-nevsky30-1\n192.168.27.135\nC2960 "];
    struct_swobuh116k11 [label = "sw-obuh116k1-1\n192.168.21.132\n "];
    struct_swkapitol1 [label = "sw-kapitol-1\n192.168.40.145\n "];

    node [fontname="Arial", fontsize=30, style=filled, fillcolor=deepskyblue];
    struct_swpolevsabirov45a [label = "sw-polevsabirov45a\n192.168.18.182\nS2300 "];
    struct_swvarshav111 [label = "sw-varshav11-1\n192.168.20.46\nSuperStack "];
    struct_swtrefol2opor [label = "sw-trefol2-opor\n192.168.31.142\nC2960 "];

    node [fontname="Arial", fontsize=30, style=filled, fillcolor=yellow];
    struct_swVO9line341 [label = "sw-VO9line34-1\n192.168.28.137\nC2960 "];
    struct_swkazac91 [label = "sw-kazac9-1\n192.168.17.104\nC2960 "];
    struct_swVO9line345 [label = "sw-VO9line34-5\n192.168.28.143\nI2924GF "];
    struct_swmagn17a2 [label = "sw-magn17a-2\n192.168.37.133\nSuperStack "];
    struct_swpopova23gajot [label = "sw-popova23-gajot\n192.168.34.133\nC3400 "];
    struct_swVO9line343 [label = "sw-VO9line34-3\n192.168.28.138\nC3400 "];
    struct_swmagnit17a1 [label = "sw-magnit17a-1\n192.168.37.130\nC2960 "];
    struct_swknipovich41 [label = "sw-knipovich4-1\n192.168.39.139\nI2126A "];

    edge[weight=1.2, dir=both, color=black, penwidth=1, arrowhead="empty", arrowtail="odot"];
    struct_swtrefol2opor:f450155->struct_swvarshav111:f450156 [color=red, penwidth=5];
    struct_swkazan71:f450212->struct_swbmorsk181:f450213 [penwidth=5];
    struct_swmikh171:f450222->struct_swbotk151:f450223;
    struct_swpirog171:f450230->struct_swbotk151:f450231;
    struct_swbotk152:f450232->struct_swbotk151:f450233;
    struct_swoktyabr381:f450262->struct_swtall71:f450263;
    struct_swvarshav111:f450291->struct_swlenin1391:f450292;
    struct_swkazac92:f450313->struct_swkazac91:f450314;
    struct_swkazac91:f450321->struct_swkazan71:f450322 [penwidth=5];
    struct_swgrib1261:f450323->struct_swkazan71:f450324;
    struct_cskazac9brd:f450333->struct_swkazac91:f450334;
    struct_swlenin1391:f450335->struct_swkazan71:f450336 [penwidth=5];
    struct_cskazac9brd:f450345->struct_swkazac91:f450346;
    struct_swsmolen331:f450347->struct_swkazac91:f450348;
    struct_swbotk151:f450349->struct_swkazac91:f450350 [penwidth=5];
    struct_cskazac9brd:f450351->struct_swkazac91:f450352;
    struct_swrastr21:f450361->struct_swkazac91:f450362 [penwidth=5];
    struct_swlenin1391:f450363->struct_swkazac91:f450364 [penwidth=5];
    struct_swpirog151:f450379->struct_swpirog171:f450380;
    struct_swkurskaya40:f450383->struct_swvolkov171:f450384;
    struct_swkubin841:f450389->struct_swlenin1391:f450390;
    struct_swkubin842:f450403->struct_swkubin841:f450404;
    struct_swVO9line345:f450431->struct_swbposad91:f450432;
    struct_swbposad92:f450435->struct_swbposad91:f450436;
    struct_swchapaeva17:f450441->struct_swbposad92:f450442;
    struct_swmedikov5fan:f450453->struct_swbposad91:f450454 [penwidth=5];
    struct_swbposad91:f450469->struct_swsamp871:f450470 [penwidth=5];
    struct_swdom41:f450473->struct_swsamp871:f450474 [penwidth=5];
    struct_swkurch101:f450477->struct_swsamp871:f450478;
    struct_swsamp873:f450479->struct_swsamp871:f450480;
    struct_swbposad91:f450487->struct_swsamp871:f450488 [penwidth=5];
    struct_swkant121:f450491->struct_swsamp871:f450492;
    struct_swpolit91:f450493->struct_swsamp871:f450494;
    struct_swengelsa291:f450495->struct_swsamp871:f450496 [penwidth=5];
    struct_swsamp681:f450497->struct_swsamp871:f450498;
    struct_swsamp421:f450499->struct_swsamp871:f450500;
    struct_swrastr21:f450539->struct_swbotk151:f450540 [penwidth=5];
    struct_swpolevsabirov45a:f450605->struct_swkolom331:f450606;
    struct_swbelovod71:f450613->struct_swsamp421:f450614;
    struct_swpopova23gajot:f450630->struct_swmedikov5fan:f450631;
    struct_swural11:f450636->struct_swVO9line345:f450637;
    struct_swlig291:f450652->struct_swkazac91:f450653 [penwidth=5];
    struct_swmagn17a2:f450657->struct_swmagnit17a1:f450658;
    struct_swlevash132:f450674->struct_swlevash131:f450675;
    struct_swmedikov5fan:f450678->struct_swlevash131:f450679 [penwidth=5];
    struct_swpetrovkosa11:f450686->struct_swlevash131:f450687;
    struct_swobuh120e1:f450711->struct_swmagnit17a1:f450712 [penwidth=5];
    struct_swtall71:f450713->struct_swmagnit17a1:f450714;
    struct_swpugacheva571:f450721->struct_swmagnit17a1:f450722;
    struct_swobuh120e1:f450751->struct_swlig291:f450752 [penwidth=5];
    struct_swlig292:f450757->struct_swlig291:f450758;
    struct_swknipovich41:f450763->struct_swlig291:f450764;
    struct_swsamp68style:f450777->struct_swsamp681:f450778;
    struct_swrevol69:f450781->struct_swmagnit17a1:f450782;
    struct_swchernigov15:f450827->struct_swsmolen331:f450828;
    struct_swvolkov171:f450835->struct_swsmolen331:f450836;
    struct_swobuh116k11:f450852->struct_swobuh120e1:f450853;
    struct_swmagnit17a1:f450926->struct_swbotk151:f450927 [penwidth=5];
    struct_swnevsky301:f450932->struct_swkazan71:f450933;
    struct_swbmorsk182:f450948->struct_swbmorsk181:f450949;
    struct_swkazan71:f450952->struct_swbmorsk181:f450953 [penwidth=5];
    struct_swbmorsk181:f450972->struct_swVO9line341:f450973 [penwidth=5];
    struct_swVO9line344:f450986->struct_swVO9line341:f450987;
    struct_swVO9line343:f450994->struct_swVO9line341:f450995 [color=Red, penwidth=5];
    struct_swbmorsk181:f450998->struct_swVO9line341:f450999 [penwidth=5];
    struct_swlevash131:f451004->struct_swVO9line341:f451005 [penwidth=5];
    struct_swkapitolk177:f451031->struct_swkapitol1:f451032;
    struct_swkapitolk338:f451033->struct_swkapitol1:f451034;
    struct_swkolom331:f451084->struct_swengelsa291:f451085;
    struct_swdom41:f451086->struct_swengelsa291:f451087 [penwidth=5];
    struct_swVO9line345:f451139->struct_swVO9line341:f451140;
    struct_swsamp871:f451157->struct_swbotk151:f451158 [penwidth=5];
    struct_swVO9line345:f451161->struct_swVO9line341:f451162;
    struct_swbotk151:f451177->struct_swkazac91:f451178 [penwidth=5];
    struct_swsamp871:f451184->struct_swbotk151:f451185 [penwidth=5];
    struct_swkazac91:f451186->struct_swkazan71:f451187 [penwidth=5];
    struct_swVO9line345:f451190->struct_swbposad91:f451191;
}

enter image description here

и тут то же самое с точкой:

enter image description here


вы пробовали использовать [rankdir=TB]?

http://www.graphviz.org/doc/info/attrs.html#d:rankdir

может быть что-то, чего мне не хватает, потому что rankdir=TB должен быть по умолчанию. Ваш пример графика, похоже, имеет rankdir=LR, но вы не упомянули его указание. (Также ваш график выглядит как направленный график, но вы указали неориентированный.)