Graphviz, 가장자리 크기 변경


92

도트 (graphviz)에서 가장자리의 크기를 변경하는 방법은 무엇입니까? 가장자리를 "굵게"만들고 싶습니다.

답변:


134

나는 shuvalov의 대답을 보완하고 싶었습니다. penwidth 는 실제로 올바른 명령입니다. 또한, shuvalov의 응답에 penwidth 입니다 모두 노드와 에지 속성 - 또한 올바른.

내가 만들고 싶었던 구별 :

  • penwidth 는 노드 속성 (예 : "NodeA"[penwidth = 5])으로 사용될 때 해당 노드의 경계선 두께에 영향을줍니다.

  • penwidth 는 edge 속성으로 사용될 때 모서리의 선 두께에 영향을줍니다 (기본값은 "1"이고 penwidth = 2를 지정하면 모서리가 굵은 글씨로 표시 됩니다.

  • 가장자리의 선 두께를 변경하려면 해당 가장자리로 연결된 두 노드의 펜 너비 를 변경할 필요가 없습니다 (shuvalev의 답변이 제안 할 수 있음).

  • A에 대한 방향 그래프 (가장자리가 방향을) 당신은 또한 크기 / 무게 변경 할 수있는 화살촉arrowtail 와 함께, 에지 체중 세 비례 남아 그래서,

  • 가장자리 의 길이가중치 속성 을 설정하여 변경할 수 있습니다. 다른 곳과 마찬가지로 기본값은 1.0입니다. 이 값을 늘리면 렌더링 중에이 가장자리를 늘리는 비용이 증가합니다 (즉, 그리기 알고리즘은이 가장자리가 더 긴 솔루션에 더 높은 패널티를 적용합니다). 1에서 4까지의 가장자리가 1에서 2까지의 가장자리보다 짧습니다.

다음 코드는이 모든 것을 보여줍니다. 렌더링 된 그래프는 코드 아래에 표시됩니다.

digraph {
    /* declare the node & style them */
    "Node 1" [shape=diamond, penwidth=3, style=filled, fillcolor="#FCD975"];
    "Node 2" [style=filled,fillcolor="#9ACEEB" ];
    "Node 3" [shape=diamond, style=filled, fillcolor="#FCD975" ];
    "Node 4" [style=filled, fillcolor="#9ACEEB" ]

    /* declare the edges & style them */
    "Node 1" -> "Node 2" [dir=none, weight=1, penwidth=3] ;
    "Node 1" -> "Node 3" [dir=none, color="#9ACEEB"] ;
    "Node 1" -> "Node 4" [arrowsize=.5, weight=2.]
}

여기에 이미지 설명 입력


어떤 이유로 weight속성이 나를 위해 아무것도 변경하지 않습니다. 나머지는 매우 유용하지만… 감사합니다!
clozach

이것은 특히 이미지와 관련하여 매우 도움이되었습니다. 여기에서 관계를 이해하는 데 도움이되었습니다. graphviz 구문은 약간 독특하여 이러한 멋진 이미지가 정말 많은 도움이되었습니다. 위의 내용을 변경하면 펜폭과 관련하여 설명을 조금 더 추가하는 것이 유일한 부분입니다. 지금은 선이 모두 굵게 표시되어 있습니다 (위의 덕분에 변경했습니다). 개별 노드는 더 두껍지 않아서 처음에하고 싶었습니다. 결국이 문제를 해결할 수 있지만 여기에 솔루션을 게시하는 것을 잊은 경우 대신이 문제를 추가합니다. :)
shevy

20

이 시도:

"NodeA" [ penwidth = 5]
"NodeB" [ penwidth = 5]
NodeA->NodeB [ penwidth = 3]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.