2017-01-31 4 views
0

나는 네트워크에있는 모든 시스코 장비를 발견하는 a Python script에서 일하고 있는데, 이제 사용자를위한 다이어그램을 만드는 옵션을 추가하려고합니다.Graphviz 가장자리 라벨이 겹치다

난은 GraphVIZ 파이썬 모듈을 사용하고 있는데 여전히 코드 작업입니다, 그러나 이것은이 시간에이 시점에서 생성하는 것입니다 :

graph { 
graph [nodesep=1.5 ranksep=1] 
edge [fontsize=10 weight=0.5] 
    "R3.lab" 
     "R3.lab" -- "R1.lab" [headlabel="Fa0/1" taillabel="Fa0/1"] 
    "R2.lab" 
     "R2.lab" -- "R1.lab" [headlabel="Fa3/0" taillabel="Fa3/0"] 
    "R2.lab" 
     "R2.lab" -- "R1.lab" [headlabel="Fa1/0" taillabel="Fa0/1"] 
    "R4.lab" 
     "R4.lab" -- "R1.lab" [headlabel="Fa4/0" taillabel="Fa4/0"] 
    "R2.lab" 
     "R2.lab" -- "R3.lab" [headlabel="Fa0/0" taillabel="Fa0/0"] 
    "R5.lab" 
     "R5.lab" -- "R3.lab" [headlabel="Fa4/0" taillabel="Fa3/0"] 
    "R4.lab" 
     "R4.lab" -- "R3.lab" [headlabel="Fa1/0" taillabel="Fa0/0"] 
    "R4.lab" 
     "R4.lab" -- "R2.lab" [headlabel="Fa1/0" taillabel="Fa1/0"] 
    "R4.lab" 
     "R4.lab" -- "R5.lab" [headlabel="Fa0/1" taillabel="Fa0/1"] 
} 

문제는 일부 노드의 에지 라벨 (예 : R4)가 서로 중첩되어 어떤 레이블이 어느 모서리에 적용되는지 파악하기 어렵습니다. 이 질문에 나를 이끌고,이 중복이 발생하지 않도록하려면 어떻게해야합니까?

솔루션은 동적이기 때문에 (다른 네트워크에서도 작동하도록)이 그래프에서 고정하는 것과 반대입니다.

의견을 보내 주시면 대단히 감사하겠습니다. 고맙습니다.

답변

2

노드에서 여백을 사용하여 노드를 더 크게 만들 수 있습니다. 가장자리의 빈 레이블은 더 많은 공간을 만드는 데 도움이됩니다.

이 그래프를보십시오 :

 
graph { 
    graph [bgcolor="#333333" fontcolor=white fontsize=16 label="Network Map" rankdir=BT] 
    node [color="#006699" fillcolor="#006699" fontcolor=white fontname=Helvetica margin=0.4 shape=box style=filled] 
    edge [arrowhead=open color=green fontcolor=white fontname=Courier fontsize=14 style=dashed] 
     R4 
     R5 
     R1 
     R2 
     R3 
      R2 -- R3 [label="   " headlabel="Fa0/0" taillabel="Fa0/0"] 
      R4 -- R2 [label="   " headlabel="Fa1/0" taillabel="Fa1/0"] 
      R2 -- R1 [label="   " headlabel="Fa3/0" taillabel="Fa3/0"] 
      R4 -- R1 [label="   " headlabel="Fa4/0" taillabel="Fa4/0"] 
      R4 -- R5 [label="   " headlabel="Fa0/1" taillabel="Fa0/1"] 
      R3 -- R1 [label="   " headlabel="Fa0/1" taillabel="Fa0/1"] 
      R2 -- R1 [label="   " headlabel="Fa0/1" taillabel="Fa1/0"] 
      R5 -- R3 [label="   " headlabel="Fa3/0" taillabel="Fa4/0"] 
} 

당신은 요점에 전체 코드를 볼 수 있습니다 완벽 https://gist.github.com/natenka/4d991cacc69e7353c84504c1581a5014

+1

가, 감사합니다. 그리고 파이썬 스크립트에 넣은 모든 노력에 감사드립니다! – OzNetNerd

+1

도움이 되었기 때문에 기쁩니다. 매우 환영합니다. :) –

관련 문제