# Draw a 2D spatial network

Hi experts!

I have:

• a list of Q 'NODES'=[(x,y)_1,........, (x,y)_Q], where each element (x,y) represent the spatial position of the node in 2D Cartesian space.
• a matrix 'H' with QxQ elements {H_k,l}. H_k,l=0 if nodes 'k' and 'l' aren't joined by a edge, and H_k,l = the length of the edge that connects these nodes.
• a matrix 'Z' with QxQ elements {Z_k,l}. Z_k,l=0 if nodes 'k' and 'l' aren't joined by a edge, and Z_k,l = intensity_k,l (a intensity scale of the edge)

I want to draw the nodes in their spatial position, connected by the edges, and use a color scale for the 'intensity'.

How must I do that?

Thanks a lot!

Best regards, José Luis

edit retag close merge delete

Sort by » oldest newest most voted

The commands point2d and line will draw points and lines for you. Here is an example:

nodes = [(1,1),(-1,1),(2,0)]
points = point2d(nodes,color='black',size=50)
lines = line((nodes,nodes),hue=.2) + line((nodes,nodes),hue=.4)
(points + lines).show(axes=False)


You could write a loop over the elements of the matrix 'Z' which adds the relevant line if the intensity is not zero, and uses the intensity value for the hue.

more