도트 그래프 언어-양방향 에지를 자동으로 만드는 방법은 무엇입니까?


83

다음은 내 Dot 그래프의 매우 간단한 예입니다.

strict digraph graphName {
A->B
B->A
}

이것은 대체 텍스트

대신 A와 B 사이에 단일 모서리를 표시하고 이중 화살표 머리를 원합니다. 이중 화살촉을 전역 옵션으로 얻는 방법을 알고 있습니다.

strict digraph graphName {
  edge [dir="both"]
A->B
B->A
}

그러나 그것은 매우 추하게 보이며 모든 가장자리가 이중으로되어서는 안됩니다.

대체 텍스트

그래프를 더 처리하고 이중 참조를 직접 감지하고 두 모서리를 단일 모서리로 바꾸면 괜찮아 보입니다. 하지만이 추가 단계를 수행 할 필요는 없습니다.

strict digraph graphName {
A->B [dir="both"]
}

대체 텍스트

더 나은 솔루션이 있습니까?

답변:


67

'concentrate = true'는 어떻습니까? :

strict digraph graphName {
concentrate=true
A->B
B->A
}

집중 = 참

로부터 문서 :

참이면 가장자리 집중기를 사용하십시오. 이렇게하면 다중 모서리가 단일 모서리로 병합되고 부분적으로 평행 한 모서리가 경로의 일부를 공유하게됩니다. 후자의 기능은 아직 도트 외부에서 사용할 수 없습니다.


나를 위해 레이블을 사용하고 이전 버전을 실행하고 있습니다.
Aaron Hall

1
도움이된다면 ... 이것은 가장자리를 합친만큼 효과가 없었지만 끝에 화살표 하나만 놓았습니다. 그런 다음 "엄격한 분할"을 시도했습니다. 그러면 완벽하게 작동합니다.
philw

이것은 어리석은 일이지만 OP가 원했던 것입니다.
Dan Rosenstark

@philw 나에게도 작동하지 않으며 단일 화살촉으로 가장자리가 생깁니다. 나는 pygraphviz를 사용하고 있으며 시도 pgv.AGraph(directed=True, strict=True)했지만 작동하지 않습니다. 두 개의 가장자리가 다시 나타납니다. 제안 사항이 있습니까?
Tropilio

101

다음을 사용해야합니다.

A -> B [dir=both]

4
이로 인해 중복 라인이 절약되었으며 적절한 경우 상위 답변과 함께 사용하고 있습니다.
Aaron Hall

2
"둘 다"주위에 따옴표가 필요하지 않습니다.
Yetti99

) 실제로 질문에 대답하지 않기 때문에 그것은 허용 대답을 할 수 없다 @NoahSussman
댄 Rosenstark는
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.