2013-05-17 25 views
90

Tôi đang sử dụng Graphviz 2.30. Vị trí ngang cho các nhãn hoạt động, nhưng trong một vài trường hợp, một góc được sửa đổi sẽ được mong muốn.Hiển thị các nhãn phù hợp với mép khi sử dụng Graphviz

Ví dụ, tôi đã cố gắng giá trị khác nhau cho góc ở đây nhưng không có bất kỳ tác dụng:

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

Làm thế nào tôi có thể hiển thị nhãn phù hợp với (ví dụ: song song với) cạnh khi sử dụng một Graphviz digraph.

Toàn bộ digraph sẽ không được đăng do NDA. Ngoài ra, vòng xoay sẽ chỉ được áp dụng cho một vài nhãn.

Tôi đã đọc các chủ đề tương tự như this hoặc another (hoặc một chuỗi về căn chỉnh ví dụ) nhưng không có bất kỳ trợ giúp nào liên quan đến vấn đề của tôi.

+2

'labelangle' chỉ làm việc với headlabels và taillabels , hơn nữa nó không xoay nhãn, nhưng chỉ định nghĩa (cùng wi th labeldistance) nơi đặt nhãn (mà vẫn là một đường ngang). Góc 0 xuất phát từ điểm đầu/cuối dọc theo cạnh. Với góc +/- nhãn có thể được in ở trên hoặc dưới cạnh. Với khoảng cách 0, góc không có hiệu lực. Tôi cũng sẽ rất quan tâm đến việc có nhãn được xoay để theo các cạnh, mà afaik vẫn chưa được giải quyết. – bug313

+1

Tôi nhận được cảm giác rằng không có cách nào để làm điều này. Nhưng vì sự vắng mặt của các tính năng hiếm khi được ghi lại (nó sẽ dẫn đến một lượng tài liệu vô hạn), thật khó để viết một câu trả lời có thẩm quyền về điều này. Trừ khi bạn có thể chỉ ra rằng không có đề cập đến bất cứ điều gì như thế này trong toàn bộ tài liệu, cũng không phải trong bất kỳ góc tối nghĩa của codebase. – bigblind

+1

Các phần tử văn bản trong Graphviz đều bị chặn với một hộp thông thường trong khi định vị. Thuật toán cố gắng thực sự khó khăn để tránh vượt qua các ranh giới hộp này trong khi đặt cạnh. Nếu một nhãn có thể được xoay, các hộp này sẽ trở nên lớn hơn nhiều dẫn đến áp lực đáng kể trên khu vực hiển thị. Nếu các nhãn có thể chồng lên các cạnh hoặc các nút, thì chúng có thể được xoay sau trong đường ống hình ảnh. – Pekka

Trả lời

0

Chỉnh sửa: một câu trả lời khác đã tìm thấy tùy chọn hiện có để căn chỉnh văn bản với các cạnh.

Tùy chọn tốt nhất của bạn có thể là xuất đồ thị dưới dạng SVG và sử dụng Illustrator hoặc Inkscape để tinh chỉnh nó. Điều này chỉ thực tế khi sản xuất một vài đồ thị.

Tôi thường xuyên phải tinh chỉnh đầu ra từ GraphvizGephi; họ cho tôi một điểm khởi đầu tốt.

2

Sử dụng dot2latex cho phép bạn chỉ định thuộc tính lblstyle. Giá trị của lblstyle được sử dụng bởi PGF/TikZ trong thế hệ pdf.

Người ta có thể chỉ định nhãn song song như thế này:

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

Để tạo pdf

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

Kết quả là

enter image description here

+0

Thật không may bạn sẽ phải biết các góc của tất cả các nhãn khi tạo biểu đồ, OP sẽ hiển thị nhãn của chúng song song với cạnh, ở góc bất kỳ cạnh nào sẽ xảy ra. – Galax

+1

@Galax Cảm ơn – malbarbo

+0

Tìm thấy tuyệt vời - đó là một tính năng tiện dụng của 'dấu chấm', tôi đã không nhận thấy nó trước đây (hoặc có thể nó mới). – Galax

Các vấn đề liên quan