根据此处的讨论,我正在使用
在shell中:
在 R 中:
然而,生成的可视化图形中顶点标签和边缘重叠,使得前者难以阅读。 我想调整R代码,使得所有顶点标签都远离顶点中心(即的顶点标签向左移动,g的顶点标签向右移动),并且所有顶点标签都是左对齐的(而不是居中对齐,默认情况下是居中对齐)。
我能通过igraph实现这个功能吗?如果可以,怎么做?如果不可能,你会建议使用哪种其他可视化策略在R中实现此目的?
在shell中:
即使实施了G5W建议的改进(即针对每个顶点分别调整顶点宽度;参见变量
在
igraph
来可视化两个变量(s
和g
)之间的关联。在shell中:
$ cat file
s g
s1 foo bar
s2 foo bar baz qux
s99 foo
s9999 foo bar baz qux
s99999 foo
s999999 foo
在 R 中:
m <- as.matrix(read.table(file="~/path_to_file/file", sep="\t", header=T))
g <- graph_from_edgelist(m)
V(g)$type <- bipartite.mapping(g)$type
coords <- layout_as_bipartite(g)
plot.igraph(g, layout = -coords[,2:1],
vertex.shape="rectangle",
vertex.size=10,
vertex.size2=1,
vertex.color=NA,
vertex.frame.color=NA,
vertex.label.color="black",
vertex.label.family="sans",
edge.label.color="white",
edge.arrow.mode=0,
edge.width=3,
asp=5)
然而,生成的可视化图形中顶点标签和边缘重叠,使得前者难以阅读。 我想调整R代码,使得所有顶点标签都远离顶点中心(即
我能通过igraph实现这个功能吗?如果可以,怎么做?如果不可能,你会建议使用哪种其他可视化策略在R中实现此目的?
--
编辑1: 一个可行的解决方案应该能够处理包含大量顶点的文件,例如file2
:在shell中:
$ cat file2
s g
foo1 bar01 baz qux
foo2 bar1 baz qux
foo3 bar1 baz qux
foo4 bar1 baz qux
foo5 bar1 baz qux
foo6 bar1 baz qux
foo7 bar1 baz qux
foo8 bar1 baz qux
foo9 bar1 baz qux
foo10 bar1 baz qux
foo11 bar02 baz
foo12 bar2 baz
foo13 bar2 baz
foo14 bar2 baz
foo15 bar2 baz
foo16 bar2 baz
foo17 bar2 baz
foo18 bar2 baz
foo19 bar2 baz
foo20 bar2 baz
foo21 bar03 baz baz qux
foo22 bar3 baz baz qux
foo23 bar3 baz baz qux
foo24 bar3 baz baz qux
foo25 bar3 baz baz qux
foo26 bar3 baz baz qux
foo27 bar3 baz baz qux
foo28 bar3 baz baz qux
foo29 bar3 baz baz qux
foo30 bar3 baz baz qux
foo31 bar04 baz baz qux quux
foo32 bar4 baz baz qux quux
foo33 bar4 baz baz qux quux
foo34 bar4 baz baz qux quux
foo35 bar4 baz baz qux quux
foo36 bar4 baz baz qux quux
foo37 bar4 baz baz qux quux
foo38 bar4 baz baz qux quux
foo39 bar4 baz baz qux quux
foo40 bar4 baz baz qux quux
foo41 bar05 baz qux quux
foo42 bar5 baz qux quux
foo43 bar5 baz qux quux
foo44 bar5 baz qux quux
foo45 bar5 baz qux quux
foo46 bar5 baz qux quux
foo47 bar5 baz qux quux
foo48 bar5 baz qux quux
foo49 bar5 baz qux quux
foo50 bar5 baz qux quux
foo51 bar06 baz qux
foo52 bar6 baz qux
foo53 bar6 baz qux
foo54 bar6 baz qux
foo55 bar6 baz qux
foo56 bar6 baz qux
foo57 bar6 baz qux
foo58 bar6 baz qux
foo59 bar6 baz qux
foo60 bar6 baz qux
foo61 bar07 baz qux quux
foo62 bar7 baz qux quux
foo63 bar7 baz qux quux
foo64 bar7 baz qux quux
foo65 bar7 baz qux quux
foo66 bar7 baz qux quux
foo67 bar7 baz qux quux
foo68 bar7 baz qux quux
foo69 bar7 baz qux quux
foo70 bar7 baz qux quux
即使实施了G5W建议的改进(即针对每个顶点分别调整顶点宽度;参见变量
Size1
),生成的图仍然难以(或几乎不可能)可视化。具体而言,似乎不存在一个在纵横比、顶点高度和顶点宽度之间的最佳平衡点。在
R
中:Size1 = 12*nchar(V(g)$name)
plot.igraph(g, layout = -coords[,2:1],
vertex.shape="rectangle",
vertex.size=Size1,
vertex.size2=5,
vertex.color=NA,
vertex.frame.color="green",
vertex.label.color="black",
vertex.label.family="sans",
edge.label.color="white",
edge.arrow.mode=0,
edge.width=3,
asp=2.5
)
Size1 = 12*nchar(V(g)$name); plot.igraph(g, layout = -coords[,2:1], vertex.shape="rectangle", vertex.size=Size1, vertex.size2=5, vertex.color=NA, vertex.frame.color="green", vertex.label.color="black", vertex.label.family="sans", edge.label.color="white", edge.arrow.mode=0, edge.width=3, asp=2.5 )
- Michael Gruenstaeudl