Vertex Position for plotting NestedBlockState

Is there a possibility to get the nodes Positions from a NestedBlockState
Object?

There are no node positions in NestedBlockState. Could you be more specific
about what you want to achieve?

I wanted to plot labels around the state.draw plot in a circular way. For this I need the position on the circle in order to calculate the angle.

If I use the hierarchical tree layout, blocks are then switched in the plot and the angles are wrong.

My solution is using the state.draw function, which returns the positions first, then calculate the angles for the labels and then plot them again.

Best

Philipp

attachment.html (4.09 KB)

I wanted to plot labels around the state.draw plot in a circular way. For
this I need the position on the circle in order to calculate the angle.

If you use text_position="centered" this will be done automatically
(assuming I'm interpreting correctly).

If I use the hierarchical tree layout, blocks are then switched in the
plot and the angles are wrong.

Without a complete, self-contained example, it is hard to say what may be
happening.

Best,
Tiago

Sorry for the incomplete description.

Here is my code:

    state = gt.minimize_nested_blockmodel_dl(new_graph, deg_corr=True)

    pos = state.draw( output='2015_'+str(j+1)+'_nested.png',
                      output_size=(900, 900))[0]

    text_rot = new_graph.new_vertex_property('double')
    new_graph.vertex_properties['text_rot'] = text_rot

    for v in new_graph.vertices():

        if pos[v][0] >0:

           text_rot[v] = math.atan(pos[v][1]/pos[v][0])
        else:
            text_rot[v] = math.pi + math.atan(pos[v][1]/pos[v][0])

    state.draw( output='2015_'+str(j+1)+'_nested.png',
                      output_size=(900, 900),
                      vertex_text=v_prop,
                      vertex_size=v_size,
                      vertex_fill_color=b,
                      vertex_shape=shape,
                        vertex_font_size=12,
                        vertex_text_position=0,
                      vertex_text_rotation=new_graph.vertex_properties['text_rot'],
                      bg_color=[0,0,0,1])

My question is how to get the correct pos values for the vertices. Instead of this line:

pos = state.draw( output='2015_'+str(j+1)+'_nested.png',
                      output_size=(900, 900))[0]

which might not be the most elegant way to solve this problem.

Best

Philipp

attachment.html (6.94 KB)