【问题标题】:igraph axes xlim ylim plot incorrectlyigraph 轴 xlim ylim 绘图不正确
【发布时间】:2012-07-01 14:36:28
【问题描述】:

如果我做一个图表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))

但是 xaxis 限制不能正常工作,我认为会被 yaxis 限制改变。如何控制我想要的 xaxis,例如将其保持在 0 和 1 之间。

plot(x,y,xlim=c(0,1),ylim=c(0,6))

这是一个错误吗?如果是并且无法解决,是否还有另一个具有相同功能的软件包?

【问题讨论】:

    标签: r plot igraph


    【解决方案1】:

    简短的回答是,您需要将调用 plot 的 asp 参数设置为 0,因为默认值是 asp = 1,它会产生您看到的行为(即,这不是错误,而是一项功能)。下面是带有解释的长答案。


    如您所见,xaxisyaxis 而异。具体来说,x 轴的高低数字之间的距离与yaxis 大致相同:

    • 如果yaxis = c(0,6),x 轴从-3 变为4。6 - 0 = 64 - (-3) = 7
    • 如果yaxis = c(0,3),x 轴从-1 变为2。3 - 0 = 2 - (-1) = 3

    Igraph 似乎在轴之间保持恒定的比率。

    如果您调用?plot.igraph(使用igraph 对象调用的绘图函数,也可以通过help(package = "igraph") 找到),您可以在See Also 下找到:

    igraph.plotting关于绘图的详细说明 参数

    如果您点击此链接(或致电?igraph.plotting)并查看参数,您会发现:

    asp 一个数字常数,它给出了绘图的asp参数,纵横比。如果您不想提供纵横比,请在此处提供 0。
    它被 tkplot 和 rglplot 忽略。

    默认为 1。

    因此,igraph 中的 aspect 参数 asp 默认为 1。如果你想要另一个比率,请将其设置为0

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

    这回答了你的问题。但是,请注意,这些点现在相当大。您可能想要使用以下参数(在 ?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)

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      相关资源
      最近更新 更多