оси igraph xlim ylim неправильно

если я сделаю графе g:

g <- read.table(text="

 A  B   W

 1  55  3
 2  55  5
 3  99  6 ",header=TRUE)

library(igraph)
g <- graph.data.frame(g)

и матрица координат:

y<-1:5
x<-c(0.1,0.1,0.2,0.2,0.8)
l<-data.frame(x,y)
l<-as.matrix(l)

Я могу построить график с позициями узлов в соответствии с пользовательскими координатами и осями графика.

plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1))

graph with wrong axes

но пределы xaxis не работают должным образом, и я думаю, что они изменены пределами yaxis. Как я могу контролировать xaxis так, как я хочу, например, держать его между 0 и 1.

то есть plot(x,y,xlim=c(0,1),ylim=c(0,6))

это жучок? Если это так, и это не может быть решено, есть ли другой пакет, который будет иметь ту же функциональность?

1 ответов


короткий ответ, вам нужно установить asp аргумент вызова plot to 0 по умолчанию asp = 1, которое производит поведение, которое вы видите (т. е. это не баг, это фича). Далее следует длинный ответ с объяснением.


как вы правильно заметили,xaxis зависит yaxis. В частности, ось x имеет приблизительно такое же расстояние между высокими и низкими числами, как yaxis:

  • если yaxis = c(0,6), ось x идет от -3 до 4. 6 - 0 = 6 и 4 - (-3) = 7
  • если yaxis = c(0,3), ось x идет от -1 до 2. 3 - 0 = 2 - (-1) = 3

Igraph, похоже, сохраняет постоянное соотношение между осями.

если вы называете ?plot.igraph (функция заговоре с