이 다이어그램을 생성하기 위해 Graphviz를 사용하고 있습니다.
출력이 최적이 아닙니다. XZ 라인은 불필요하게 XY 라인을 교차합니다. Y가 X보다 높을 것으로 예상합니다. doco에서 많은 옵션을 시도했지만 아무 소용이 없습니다. 이것은 내가 기대하는 출력의 종류입니다.
Graphviz에서 더 나은 최적화 된 다이어그램을 생성하려면 어떻게해야합니까?
참고 : 위의 시나리오에 특정한 솔루션 (예 : X0-> Y1, Y11-> X03 등의 보이지 않는 가장자리)이 도움이되지 않도록 유사한 다이어그램 생성을 자동화하고 싶습니다. 일반적으로 다음과 같은 것을 신뢰할 수있는 방법을 찾고 있습니다.
도트 파일 내용은 다음과 같습니다.
digraph G {
rankdir=LR
subgraph cluster_x {
node [style=filled,color=green]
"X.0" -> "X.0.1" -> "X.0.2" -> "X.0.3" -> "X.0.4"
}
subgraph cluster_y {
node [style=filled,color=lightblue]
"Y.1" -> "Y.1.1"
}
subgraph cluster_z {
node [style=filled,color=crimson]
"Z.1" -> "Z.1.1"
"Z.2"
}
A -> "X.0"
"X.0.1" -> "Y.1"
"X.0.1" -> "Z.2"
"X.0.2" -> "Z.1"
"Y.1.1" -> "X.0.2"
"Z.1.1" -> "X.0.4"
"Z.2" -> "Z.1.1"
"X.0.4" -> B
}
사소하지 않습니다. 우리는 레이아웃 알고리즘을 지원하는 자원 봉사자들에게 열려 있습니다. Emden Gansner와 저는 점의 완전한 정밀 검사 (서브 그래프 및 긴 모서리에 대한 더 깨끗한 데이터 구조와 mincross에 대해 선별 사용)에 큰 시작을했지만 완료하지 않았습니다. 우리는 Emden이 이전 도트 레이아웃 엔진을 백 해킹했다고 생각하는 새로운 레벨 할당 cpde를 작성했습니다. 누군가 그것을 집어 들고 더 나아가고 싶다면 아마도 몇 달의 노력 일 것입니다. graphviz.org로 문의
일반적으로 제약 기계 (점과 같은)는 약간 부서지기 쉽습니다. 스스로 올바른 솔루션을 얻거나 약간의 조정을 추가 할 수 있지만 입력이 조금이라도 변경 되 자마자 조정으로 모든 것이 깨져서 좋지 않습니다. 레이아웃 패스의 직렬 특성 때문에 예를 들어 나중에 교차점을 줄이기 위해 다른 레벨 할당을 선호하는 것은 어렵습니다. 누군가가 그것을 찾아서 구현하고 싶다면 Graph Drawing 컨퍼런스에서 약간의 작업이있을 수 있습니다.
스티븐 노스
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다