Graphviz를 사용할 때 가장자리에 맞춰 레이블 표시


91

Graphviz 2.30을 사용하고 있습니다. 레이블의 수평 위치는 작동하지만 경우에 따라 수정 된 각도가 필요할 수 있습니다.

예를 들어, 각도에 대해 다양한 값을 시도했지만 효과는 없습니다.

ABB -> ABACUS[label="applied", fontname="Arial", fontsize=15, labelangle=110];

Graphviz를 사용할 때 어떻게 레이블을 가장자리와 나란히 (즉, 평행하게) 표시 할 수 있습니까 digraph?

digraphNDA로 인해 전체 가 게시되지 않습니다. 또한 회전은 몇 개의 레이블에만 적용됩니다.

나는 이것 또는 다른 (또는 예를 들어 정렬에 관한 스레드)와 같은 유사한 스레드를 읽었 지만 내 문제에 대한 도움이 없습니다.


2
'labelangle'은 headlabel과 taillabel에서만 작동하며, 또한 레이블을 회전하지 않고 레이블을 배치 할 위치 만 정의합니다 (라벨 거리와 함께) (여전히 수평선). 각도 0은 가장자리를 따라 시작점 / 끝점에서 시작됩니다. 각도 + /-레이블은 가장자리 위 또는 아래에 인쇄 할 수 있습니다. 거리가 0이면 각도가 효과가 없습니다. 나는 또한 레이블이 가장자리를 따라 회전하는 데 매우 관심이 있는데, 이는 여전히 해결되지 않은 것입니다.
bug313 2014

1
나는 이것을 할 방법이 없다는 느낌을 받고 있습니다. 그러나 기능의 부재는 거의 문서화되지 않았기 때문에 (무한한 양의 문서화로 이어질 수 있음) 이에 대한 권위있는 답변을 작성하기가 어렵습니다. 전체 문서 나 코드베이스의 모호한 구석에 이와 같은 언급이 없다는 것을 지적 할 수 없다면.
bigblind 2014 년

1
Graphviz의 텍스트 요소는 모두 위치 지정 중에 일반 상자로 묶여 있습니다. 알고리즘은 가장자리를 배치하는 동안 이러한 상자 경계를 넘지 않도록 정말 열심히 노력합니다. 라벨을 회전 할 수 있다면이 상자가 훨씬 커져서 디스플레이 영역에 상당한 압력이 가해집니다. 레이블이 가장자리 또는 노드와 겹칠 수있는 경우 나중에 이미징 파이프 라인에서 회전 할 수 있습니다.
Pekka

1
실제로 문서에서 찾을 수 있습니다. github.com/ellson/graphviz/blob/master/doc/internal_todo.html "?-각도로 텍스트 허용"
MK.

답변:


6

사용 dot2latex하기 를 지정할 수 있습니다 lblstyle속성을. 의 값은 pdf 생성시 PGF / TikZ 에서 lblstyle사용됩니다 .

다음과 같이 병렬 레이블을 지정할 수 있습니다.

digraph G {
    edge [lblstyle="above, sloped"];
    a -> b [label="ab"];
    b -> c [label="bc"];
    c -> a [label="ca"];
}

pdf를 생성하려면

$ dot2tex --tikzedgelabel file.dot > file.tex
$ pdflatex file.tex

결과는

여기에 이미지 설명 입력


불행히도 그래프를 생성 할 때 모든 레이블의 각도를 알아야합니다. OP는 가장자리가 어떤 각도에서든 가장자리와 평행하게 레이블을 표시하려고합니다.
Galax

1
@Galax 귀하의 의견에 감사드립니다. 나는 답을 고쳤다.
malbarbo

훌륭한 발견-의 편리한 기능입니다 dot. 전에는 몰랐습니다 (또는 새로운 기능 일 수도 있음).
Galax

-1

편집 : 다른 답변은 텍스트를 가장자리와 정렬하는 옵션을 찾았습니다.

가장 좋은 방법은 그래프를로 내보내고 SVG사용 Illustrator하거나 Inkscape미세 조정하는 것입니다. 이것은 몇 개의 그래프를 생성 할 때만 실용적입니다.

나는 자주 Graphviz및 의 출력을 조정해야합니다 Gephi. 그래도 좋은 출발점을 제공합니다.

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