Ask Your Question
0

Tree layout of a graph

asked 2015-12-12 12:42:23 +0200

Peter Luschny gravatar image

updated 2015-12-13 07:39:21 +0200

Consider the graph of this tree:

T = Graph()
E = [(0, 1), (1, 2), (2, 3), (2, 4)]
T.add_edges(E);
T.show(layout='tree',tree_root=0,tree_orientation='down')

image description

I would like to see the edges displayed in the order as given in the list E from left to right. In other words, I would like to have node(4) exchange its position with node(3).

How can I achieve this?

Edit: To clarify: Changing the order of the edge-list is no option (besides not working either). The order of the edges must be adhered to the order given.

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted
0

answered 2015-12-14 20:15:45 +0200

FrédéricC gravatar image

You can use instead planar graphs by setting the embedding:

sage: T = Graph()
sage: E = [(0, 1), (1, 2), (2, 3), (2, 4)]
sage: T.add_edges(E)
sage: T.set_embedding({0:[1],1:[0,2],2:[1,3,4],3:[2],4:[2]})
sage: T.show()
edit flag offensive delete link more

Comments

This might work; however the 'set_embedding' requires additional work with the edges and is not satisfying as it is completely unnecessary since the requested embedding is already there: implicitly in the list of the edges. All I want is that Sage respects the given order instead of messing it up. Thus my question seems to amount to a quite natural feature request.

Peter Luschny gravatar imagePeter Luschny ( 2015-12-21 14:21:58 +0200 )edit
0

answered 2015-12-12 21:18:11 +0200

ndomes gravatar image

I tried with success changing the order of edges in E and converting to strings.

T = Graph()
E = [(0, 1), (1, 2), (2, 4), (2, 3)]
E = [map(str,e) for e in E]
T.add_edges(E);
T.show(layout='tree',tree_root='0',tree_orientation='down')
edit flag offensive delete link more

Comments

I do not want to change the order of the edges. This is a minimal example; in reality the edges are a large and complicated sequence computed by a program. I want to persuade Sage to respect the order of the edges as given.

Peter Luschny gravatar imagePeter Luschny ( 2015-12-12 22:40:18 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2015-12-12 12:42:23 +0200

Seen: 742 times

Last updated: Dec 14 '15