我有一个有3列的 Dataframe ,示例如下(纯粹假设):
id <- c("Muller", "Muller", "Ter Stegen", "Musiala", "Musiala", "Musiala", "Pavard")
tid <- c("Davies", "De Ligt", "Muller", "Kimmich", "Pavard", "Lewandowski", "De Ligt")
Passes <- c(14, 5, 1, 10, 23, 4, 1)
Passes <- data.frame(id, tid, Passes)
dput(Passes)
我一直想把它画出来,这样顶点就出现在输出图的特定坐标上。
到目前为止,我的代码如下:
g <- graph.data.frame(Passes, directed = TRUE)
set_edge_attr(g, "weight", value= E(g)$Passes)
coords <- data.frame(id = c("Ter Stegen", "Musiala", "Davies", "Kimmich", 'De Ligt', "Lewandowski", "Muller", "Pavard"),
x= c(0.5, 1, 1, 1, 2, 3, 3, 3.5),
y= c(1, 1.8, 1.4, 1, 0.6, 1.8, 1.6, 1.2))
plot(g, vertex.size= 2, edge.arrow.size = 0.3, vertex.label.cex = 0.8,
edge.curved=.2, asp = 0, vertex.label.dist=0.7,
layout=coords, xlim = c(0, 4), ylim = c(0, 2))
但之后我不断收到错误,如'错误在norm_coords(布局,-1,1,-1,1):'布局'不是矩阵''
有人知道我的代码有什么问题吗,或者可以提出一个更好的方法吗?谢谢!我的实际 Dataframe 有32个唯一的id,总共有252行,我想找到一个有效的方法给予每个唯一的id一个位置。
谢谢艾美
1条答案
按热度按时间83qze16e1#
尝试