Как получить координаты X Y решетчатого графа с помощью graph_tool

#python #graph #coordinates #graph-tool

#python #График #координаты #graph-инструмент

Вопрос:

Я создаю решетчатый граф, используя graph_tool . Я пытаюсь создать карту свойств, которая представляет координаты X Y на графике. Например, если я создаю решетчатый граф высотой 5 и шириной 10, я хочу, чтобы значение карты свойств для вершины 0 было [0, 0], вершина 1 была [1, 0], вершина 10 была [0, 1] и т. Д

Я сгенерировал изображение, используя приведенный ниже код:

 g = lattice([10, 5]) 
pos = sfdp_layout(graph)
graph_draw(graph, pos=pos, output_size=(500,500), vertex_text=graph.vertex_index, output="lattice.png")
  

граф с номерами вершин

В приведенном выше коде значение pos[0] равно array([-16.4148811 , -11.80299953])

Я в правильном направлении использую sfdp_layout ?

Ответ №1:

Вершины нумеруются в соответствии с порядком следования строк, поэтому вы можете просто вычислить координаты по их индексам:

 g = lattice([10, 5])                                                   
x = g.new_vp("double", arange(g.num_vertices()) % 10)                  
y = g.new_vp("double", arange(g.num_vertices()) // 10)                 
pos = group_vector_property([x,y])                                     

graph_draw(g, pos, output="lattice.png")
  

введите описание изображения здесь

Комментарии:

1. ПРИМЕЧАНИЕ: arange это функция numpy, которая может потребоваться np.arange , если она не определена