2009-09-25 11 views
19

일부 그래프를 그리기 위해 Graphviz을 사용하고 있습니다. 나는 노드에 레이블을 사용하고 있으며 "\n"을 두 줄에 걸쳐 레이블을 분할하도록 지정할 수 있습니다. 내가 사용하고있는 Graphviz (또는 dot)를 얻을 수있는 방법이 있습니까? 자동으로 노드 레이블을 분할해야한다는 것을 자동으로 확인하고 자동으로 최상의 선택을 할 수 있습니까?Graphviz의 자동 다중 라인 레이블?

답변

10

또한 검색해 보았지만 현재 버전에서는 가능하지 않다고 생각합니다. 현재의 "솔루션"은 노드 간의 최소 거리를 기반으로 몇 개의 문자마다 "\ n"을 자동으로 추가하는 코드를 작성하는 것입니다 (잘못 입력하지 않은 경우 nodesep 특성).

+3

당신은 또한 HTML과 같은 라벨을 사용할 수는 자동으로 줄 바꿈되지 것이다 ('대신' "..."'의'<...>로 인용)하지만 N을 \ 이상의 레이아웃을 더 제어 할 수 있습니다. 어쩌면 시스템 그래픽 라이브러리에서 렌더링 된 문자열의 길이를 추정 할 때 휴식 시간을 어디에 넣을 지 짐작할 수 있습니까? –

7

예, HTML과 유사한 라벨 (<>)은
태그를 지원하므로 줄 바꿈을 사용할 수 있습니다. 예 :

"A" -> "B" 
[label = <1. <br/> 
2. <br/> 
3. <br/> 
4. <br/> 
.... <br/> 
> color="blue" style="dashed"]; 
+3

-1 이것은 질문에 대답하지 않습니다. 또한 현재 사용되는 방법 (2 문자가 5보다 낫습니다)보다 나쁩니다. –

+4

질문에 대답하지 않지만 훌륭한 해결 방법을 제공하므로 +1을 드리겠습니다. – Pascal