Как правильно позиционировать xlabel и избегать скрещивания краев?
Я использую graphviz в расширении уценки кода Visual Studio, который использует viz.js для визуализации graphviz. Ниже приведен код.
```dot {engine="neato"}
graph G {
overlap=compress;
sep=4;
edge [ fontsize=9 color="#92CCBF" fontcolor="#7c7c7c" ];
node [shape=box width=0.1 height=0.1 style=filled fontname="Arial" fontsize=10 fixedsize=true color="#179E9C" ];
A [xlabel=Arad, label="" pos="-3.25,0.15!"];
S [xlabel=Sibiu label="" pos="-1.75,-0.05!"];
Z [xlabel=Zerind label="" pos="-2.95,0.75!"];
T [xlabel=Timisoara label="" pos="-3.30,-0.8!"];
O [xlabel=Oradea label="" pos="-2.45,1.35!"];
LU [xlabel=Lugoj label="" pos="-2.25,-1.25!"];
M [xlabel=Mehadia label="" pos="-2.15,-2!"];
D [xlabel=Drobeta label="" pos="-2.3,-2.75!"];
C [xlabel=Craiova label="" pos="-1,-2.75!"];
RV [xlabel="Rimnicu Vilcea" label="" pos="-1.25,-0.8!"];
P [xlabel=Pitesti label="" pos="0.0,-1.45!"];
F [xlabel=Fagaras label="" pos="-0.25,-0.15!"];
B [xlabel=Bucharest label="" pos="1.5,-2.1!"];
G [xlabel=Giurgiu label="" pos="1.3,-2.85!"];
U [xlabel=Urziceni label="" pos="3,-1.85!"];
H [xlabel=Hirsova label="" pos="4,-2!"];
E [xlabel=Eforie label="" pos="3.8,-3!"];
V [xlabel=Vaslui label="" pos="3.5,-0.05!"];
LA [xlabel=lasi label="" pos="2.75,0.75!"];
N [xlabel=Neamt label="" pos="2,1.25!"];
A -- {Z S T};
Z -- O [label="71"];
O -- S [label="151"];
S -- F [label="99"];
T -- LU [label="111"];
LU -- M [label="70"];
M -- D [label="75"];
D -- C [label="120"];
S -- RV [label="80"];
RV -- C [label="146"];
RV -- P [label="97"];
C -- P [label="138"];
F -- B [label="211"];
P -- B [label="101"];
G -- B [label="90"];
B -- U [label="85"];
U -- H [label="98"];
H -- E [label="86"];
U -- V [label="142"];
V -- LA [label="92"];
LA -- N [label="87"];
}
```
Он производит вывод следующим образом.
Идеально ожидаемый результат:
Я терпеть не мог использовать абсолютное позиционирование, так как это было очень больно и занимало много времени, но я не мог автоматически настроить графвизу так, как ожидалось.
- Есть ли способ, которым я мог бы избежать абс.позиции и все же получить результат, как и ожидалось?
- В выводе мои метки узлов и метки ребер находятся ниже ребер и пересекаются с ними. Можем ли мы этого избежать, и размещать xlabels и ярлыки без автоматического пересечения? Даже если только вручную возможно, как?
Из-за расширения у меня нет командной строки для использования neato flag n2, поэтому мне нужен путь внутри самого графика. Пожалуйста, помогите.