2011-12-26 14 views
6

tengo un grafo no dirigido hechas por herramientas graphviz (ahora estoy usando sfdp):graphviz solapamiento = orto: disposición horizontal

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-1\n192.168.17.141\nC2960 "]; 
     node [fontname="Arial", fontsize=30, style=filled, fillcolor=chartreuse1, image="../common/img/monitor.png"]struct_swmedikov5fan [label = "sw-medikov5-fan\n192.168.34.134\n "]; 
     node [fontname="Arial", fontsize=30, style=filled, fillcolor=chartreuse1, image="../common/img/monitor.png"]struct_swlevash131 [label = "sw-levash13-1\n192.168.16.165\nC2960 "]; 
     node [fontname="Arial", fontsize=30, style=filled, fillcolor=deepskyblue]struct_swpolevsabirov45a [label = "sw-polevsabirov45a\n192.168.18.182\nS2300 "]; 
...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... 

aquí es el código completo: http://pastebin.com/P3MKTCm2 (que es realmente grande, lo siento)

y la salida es como la siguiente: (parte)

enter image description here

Problema: necesito mi gráfica para crecer horizontalmente en lugar de verticales y ¿Hay alguna forma de obtener el diseño como el de la imagen, pero "rotar" 90 grados?

+0

Este tipo de gráfico se ve como un gráfico dirigido, y su muestra corta indica un gráfico dirigido (usando 'digraph'). 'sfdp' solo genera salida si usa' 'dígrafo'' con los bordes dirigidos (' -> ') o' gráfico' con bordes no dirigidos ('--'). De todos modos, sería más fácil si publicaras un gráfico completo para trabajar. Por cierto, tuve que eliminar las barras invertidas antes de las comillas dobles al definir la url del nodo. – marapet

+0

@marapet He editado mi pregunta y puse todo mi código de punto en pastebin – k102

Respuesta

5

Un par de observaciones hechas al tratar de hacer algo fuera de la gráfica:

  • El gráfico no es grande, pero el margen de beneficio seguro que es redundante: apliqué un poco de amor y los eliminé para que realmente se pueda leer (ver a continuación)
  • Los puertos utilizados para los bordes no existen y graphviz genera una carga de advertencias. Mientras que la salida todavía se genera, esto ciertamente no es algo bueno.
  • Este es un grafo dirigido - digraph y -> se utilizan para gráficos dirigidos.
  • overlap=orthoxy parece estar en desuso:

The remaining allowed values of overlap correspond to algorithms which, at present, can produce bad aspect ratios. In addition, we deprecate the use of the "ortho*" and "portho*".

Por debajo de la salida cuando el simple uso overlap=false con SFDP, haciendo caso omiso de todas las advertencias y las imágenes que faltan:

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

Y aquí lo mismo con punto:

enter image description here

+0

gracias! sí, sé sobre puertos no utilizados: hay dos opciones para el gráfico (con y sin puertos). tengo la imagen correcta con 'dot', (eso es genial :) pero no puedo obtener la salida' sfdp' para que parezca tuya. ¿Qué versión de graphviz estás usando? y tienes una biblioteca de triangulación instalada? – k102

+0

Tendré que revisar mi otra caja, pero sin duda es 2.29 (en Windows). No sé sobre ninguna biblioteca de triangulación (?). – marapet

+0

me sale un error al usar sfdp: 'Error: remove_overlap: Graphviz no está compilado con la biblioteca de triangulación' (2.28 freeBSD). funciona, pero no sé qué debería hacer con eso ... – k102

1

¿Ha intentado usar [rankdir = TB]?

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

Puede haber algo que me falta, porque rankdir = TB debe ser el valor por defecto. Su gráfico de muestra parece tener rankdir = LR, pero no mencionó especificarlo. (También la gráfica se ve como un grafo dirigido, pero indicó no dirigido.)

+0

NO está dirigido - estoy usando el filtro 'sfdp' – k102

+0

He editado mi pregunta y he añadido el código completo. ¿tienes más ideas? – k102