的igraph包似乎满足您的要求,与tkplot()
功能帮助调整如果需要最终的布局。
下面是使用的例子:
s <- cbind(A=sample(letters[1:4], 100, replace=TRUE),
B=sample(letters[1:2], 100, replace=TRUE))
s.tab <- table(s[,1], s[,2])
library(igraph)
s.g <- graph.incidence(s.tab, weighted=T)
plot(s.g, layout=layout.circle,
vertex.label=c(letters[1:4],letters[2:1]),
vertex.color=c(rep("red",4),rep("blue",2)),
edge.width=c(s.tab)/3, vertex.size=20,
vertex.label.cex=3, vertex.label.color="white")
使用交互式显示屏(有使用rgl
3D显示的可能性),它看起来像(我稍微移动一个顶点之后):
tkplot(s.g, layout=layout.circle, vertex.color=c(rep("red",4),rep("blue",2)))
最后,您甚至可以将图表导出为最常见的格式,例如graphviz的dot
。
来源
2011-05-01 17:50:11
chl
感谢。当我需要再次绘制图表时,我会尝试igraph!仅仅为了一些信息,在我问了这个问题后,我和RGraphviz一起去了,并且通过重新编写我的原始任务,摆脱了绘制多边的需求。 – Timo 2011-05-02 13:06:12
@Timo很高兴听到您用graphviz找到自己的方式。我也使用它很多。这只是'igraph'是最强大的,IMO。 (顺便说一句,我的+1给你的Q,当我回答时,我没有投票)---) – chl 2011-05-02 13:24:49