使用R和igraph绘制图形,我使用颜色标记顶点类型。见下面的代码。是否可以使用图案而不是颜色填充顶点,以便在以彩色和黑白方式查看节点类型时可以区分? 我需要4种独特的颜色/图案。来自colorbrewer的唯一调色板是这一个:http://colorbrewer2.org/#type=sequential&scheme=OrRd&n=4 但是,对于我的稀疏图形,它仍然难以区分颜色。另外,我是色盲,这对我没有帮助。我想知道我是否可以用条纹,哈希,波尔卡圆点以及除颜色之外的任何东西填充顶点。
library(igraph)
library(RColorBrewer)
cols = brewer.pal(4, "Dark2") #looks good in color, not in bw
g <- sample_pa(20)
l <- layout_with_fr(g,niter=300)
plot(g,layout=l,edge.arrow.size=0,vertex.size=8,
vertex.frame.color="white",vertex.label=NA,vertex.color=cols)
答案 0 :(得分:1)
你的图表有20个顶点。
> length(V(g))
[1] 20
形状参数(参见?vertex.shape.pie
可以以相对分段大小和不同颜色的数字规范的形式应用变化的“模式”(或形状):
values <- lapply(1:20, function(x) sample(1:5)) #segment sizes
colrs <- lapply(1:20, function(x) sample( c(heat.colors(4), "#000000FF"), 5)) # order of colors
plot(g, vertex.shape="pie", vertex.pie=values,
vertex.pie.color=colrs,
vertex.size=seq(10,30,length=10), vertex.label=NA)
你可以用“#ffffffff”制作这些“白色”或者使它们变成灰色阴影。可以对基本图形进行模式化(这是plot.igraph
使用的范例,例如:
rect(.8,.8,1,1, col=grey(.2), density=20, angle=45)
但是,我没有在plot.igraph
代码中看到使用'density'参数。如果您想进行自己的检查,则需要查看igraph
- 命名空间:
ls( envir= as.environment("package:igraph") )