#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
, если она не определена