如果我做一个图表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)
Run Code Online (Sandbox Code Playgroud)
和坐标矩阵:
y<-1:5
x<-c(0.1,0.1,0.2,0.2,0.8)
l<-data.frame(x,y)
l<-as.matrix(l)
Run Code Online (Sandbox Code Playgroud)
我可以根据自定义坐标和绘图轴绘制具有节点位置的图形.
plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1))
Run Code Online (Sandbox Code Playgroud)

但是xaxis限制功能不正常,我认为是由yaxis限制改变的.我如何以他想要的方式控制x轴,例如将其保持在0和1之间.
即 plot(x,y,xlim=c(0,1),ylim=c(0,6))
这是一个错误吗?如果是,并且这无法解决是否有另一个具有相同功能的包?
Hen*_*rik 19
简短的回答是,您需要将asp绘图调用的参数设置0为默认值,asp = 1从而产生您看到的行为(即,它不是错误,它是一个特征).下面是解释的长答案.
正如你所注意到的,xaxis根据不同而不同yaxis.具体来说,x轴在高位数和低位数之间的距离大致相同yaxis:
yaxis = c(0,6),x轴从-3变为4 6 - 0 = 6并且4 - (-3) = 7yaxis = c(0,3),x轴从-1到2.3 - 0 = 2 - (-1) = 3Igraph似乎在轴之间保持恒定的比例.
如果你调用?plot.igraph(用igraph对象调用绘图函数,也可以通过它找到help(package = "igraph")),你会发现See Also:
igraph.plotting有关绘图参数的详细说明
如果您点击此链接(或致电?igraph.plotting)并查看参数,您会发现:
asp一个数字常量,它给出了绘图的asp参数,纵横比.如果您不想提供宽高比,请在此处提供0.
它被tkplot和rglplot忽略.默认为1.
因此,aspect参数asp默认为1igraph.如果您想要另一个比率,请将其设置为0:
plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1), asp = 0)
Run Code Online (Sandbox Code Playgroud)
这回答了你的问题.但请注意,这些要点现在相当大.您可能想要使用以下参数(找到?igraph.plotting但请注意,许多参数需要以vertex.我所做的为前缀):
vertex.size 默认是15,5似乎更好vertex.label.cex 默认值为1,0.8似乎更好.以下产生了更好的情节:
plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1), asp = 0, vertex.size = 5, vertex.label.cex = 0.8)
