How to plot 4 nodes in a weighted digraph as a square?
4 次查看(过去 30 天)
显示 更早的评论
I am trying to control the layout of a digraph consisting of two pairs of nodes so the graph looks something like this:
node1_pair1 <-> node1_pair2
node2_pair1 <-> node2_pair2
I would like the two pairs to be arranged in a square, with either pair showing weighted connections to the other. When there are only "horizontal connections" (e.g. node1_pair1 -> node1_pair2), I am able to retain a square arrangement of nodes by using the layout function:
layout(p,'layered','direction','right');'
However, when I try to add a "diagonal" connection (e.g. node1_pair1 -> node2_pair2) or vertical connection, the nodes lose their square arrangemnt. How can I retain a square arrangement of nodes regardless of the connections I add?
0 个评论
采纳的回答
Steven Lord
2019-5-29
None of the provided layout functions allow you to fix the relative positions of a set of four nodes like this.
You could use layout to arrange the nodes iniitally then modify the XData and YData properties for those specific nodes to force them into a square, or skip layout entirely and set the XData and YData properties initially if these are the only nodes in your digraph or if the nodes have coordinates independent of the structure of the digraph. This post on Loren's blog uses the latter technique in the "Visualizing the results" section to plot nodes representing state capitals in the centroid of their states (which are mostly independent of the connections of the state capitals) and the result looks like a map of the United States (if you use a bit of imagination.)
0 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!