Как получить координаты X Y решетчатого графа, используя graph_tool - PullRequest
0 голосов
/ 14 апреля 2019

Я создаю решетчатый граф, используя 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")

graph with vertex numbers

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

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

1 Ответ

1 голос
/ 14 апреля 2019

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

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")

enter image description here

...