我有一个群距离G的矩阵,如下所示
G <- data.frame( Gp1=c(6.525,15.915,16.605,10.665,19.345), Gp2=c(15.915,8.605,31.455,25.485,48.355), Gp3=c(16.605,31.455,7.955,11.195,33.685), Gp4=c(10.665,25.485,11.195,0,21.985), Gp5=c(19.345,48.355,33.685,21.985,0))
rownames(G) <- colnames(G)
G
Gp1 Gp2 Gp3 Gp4 Gp5
Gp1 6.525 15.915 16.605 10.665 19.345
Gp2 15.915 8.605 31.455 25.485 48.355
Gp3 16.605 31.455 7.955 11.195 33.685
Gp4 10.665 25.485 11.195 0.000 21.985
Gp5 19.345 48.355 33.685 21.985 0.000对角线是组内距离。
我想在下面的情节中描述上述情况。它不需要缩放到距离值。如何用R制作?

发布于 2014-06-14 17:51:25
这一点非常接近:
注:纳入@Jealie的建议,并作了一些其他修改。现在离你的预期结果更近了一点。
rownames(G) <- colnames(G) <- c("I","II","III","IV","V")
G[lower.tri(G)] <- 0
library(igraph)
g <- graph.adjacency(as.matrix(G),weight=T, mode="undirected")
g <- simplify(g,remove.loops=TRUE)
plot(g,edge.label=E(g)$weight,
vertex.label=paste(V(g)$name,diag(as.matrix(G)),sep="\n"),
layout=layout.circle,
vertex.size=30)

我不知道如何使边缘标签平行于边缘,但这并不意味着它不能‘做’。
发布于 2014-06-18 07:13:43
用q图求出解
G <- data.frame( Gp1=c(6.525,15.915,16.605,10.665,19.345), Gp2=c(15.915,8.605,31.455,25.485,48.355), Gp3=c(16.605,31.455,7.955,11.195,33.685), Gp4=c(10.665,25.485,11.195,0,21.985), Gp5=c(19.345,48.355,33.685,21.985,0))
rownames(G) <- colnames(G)
rownames(G) <- colnames(G) <- as.character(as.roman(seq(length.out=nrow(G))))
qgraph(G, layout = "circle", usePCH = TRUE,
normalise = TRUE,
vsize = 7, color = "gray90", node.width = 1,
border.width = 1.7, diag = FALSE,
label.prop = 0.6,
labels = paste(rownames(G),diag(as.matrix(G)),sep="\n"),
esize = 1, edge.labels = TRUE, edge.color = "black", fade=FALSE,
lty = "dotted", edge.label.cex = 0.7, edge.label.bg = "white",
directed = TRUE, arrows = FALSE, bidirectional = TRUE,
asize = 1.5, weighted = FALSE)

https://stackoverflow.com/questions/24222267
复制相似问题