【问题标题】:Coordinates in igraph in RR中igraph中的坐标
【发布时间】:2017-10-25 02:27:16
【问题描述】:

我正在尝试 1)获取网络坐标 2)将它们用于其他网络以始终具有相同的节点位置。

当我获取节点的坐标并将坐标设置到我从中获取它们的同一网络时,它会发生变化。 x 位置保持不变,y 位置变得与假设的 y 轴对称。因此,当应用两次时,该位置就是我想要的位置。

问题可能出在 tkplot.getcoords() 函数中。你知道是否有避免应用两次的技巧吗?

n <- 20
mat <- matrix(1:n^2, n,n)
g <-  graph.adjacency(mat, mode="directed", weighted=TRUE, diag=FALSE)
V(g)$color <- "white"
id <- tkplot(g, edge.curved = 0.5)

coor <- tkplot.getcoords(id,norm=F)
coor
tkplot.setcoords(id, coor) # wrong position 

coor <- tkplot.getcoords(id,norm=F)
coor
tkplot.setcoords(id, coor) # desired position 

【问题讨论】:

    标签: r coordinates igraph tkplot


    【解决方案1】:

    你知道是否有避免应用两次的技巧吗?

    好像你必须翻转 y 坐标;这适用于我的电脑:

    library(igraph)
    set.seed(1);n <- 5
    mat <- matrix(1:n^2, n,n)
    g <-  graph.adjacency(mat, mode="directed", weighted=TRUE, diag=FALSE)
    V(g)$color <- "white"
    id <- tkplot(g, 200, 200, edge.curved = 0.5)
    coor <- tkplot.getcoords(id,norm=F)
    canvas_height <- as.numeric(tcltk::tkcget(tk_canvas(id), "-height"))-20 # twenty by trial&error - prly the frame border top&bottom?
    coor[,2] <- canvas_height-coor[,2]
    # move some vertices and...
    tkplot.setcoords(id, coor) # reset
    

    【讨论】:

      猜你喜欢
      • 2018-09-08
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 2012-06-30
      相关资源
      最近更新 更多