все!
Я пытаюсь использовать igraph в R и построить вершины и ребра случайного графа. Координаты каждой вершины выбираются случайным образом из (0,1) и сохраняются в строке матрицы, CENTERS . Однако после с использованием layout = CENTERS некоторые точки, по-видимому, нарисованы в другом месте (отрицательная координата x / y).
n = 5
r = 0.1
# randomly assign coordinates to n points
CENTERS <- matrix(0, nrow = n, ncol = 2)
for (t in 1:n)
{
CENTERS[t,1] <- runif(1)
CENTERS[t,2] <- runif(1)
}
# create adjacency matrix
# decide connect or not by distance
M <- matrix(0, nrow = n, ncol = n)
for (i in 1:n)
{
for (j in 1:n)
{
if (i != j)
{
dist <- sqrt(sum((CENTERS[i,]-CENTERS[j,])^2))
if (dist < 2*r) {M[i,j] <- 1}
}
}
}
# plot the random graph
g <- graph.adjacency(M)
plot(g, layout=CENTERS, axes = TRUE,
edge.arrow.mode=0, edge.color="black", edge.width=2,
vertex.label=NA, vertex.color="red", vertex.shape='square', vertex.size=5)
График Рэндама
Почему это происходит? Как я могу убедиться, что каждая вершина находится в своих координатах? Спасибо!