R,igraph,是否有可能用图案填充顶点
问题描述:
用R和igraph绘制图形,我用颜色来标记顶点类型。见下面的代码。是否可以用图案而不是颜色填充顶点,以便在用黑色和白色查看时可以区分节点类型? 我需要4种独特的颜色/图案。 colorbrewer唯一适合的调色板是这样的:http://colorbrewer2.org/#type=sequential&scheme=OrRd&n=4 但是,对于我的稀疏图形来说,它仍然很难区分颜色。此外,我是色盲,这没有帮助。我想知道我是否可以用条纹,圆点,圆点或其他颜色填充顶点。R,igraph,是否有可能用图案填充顶点
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)
答
你的图有20个顶点。
> length(V(g))
[1] 20
形状参数(请参阅?vertex.shape.pie
可以在相对的段大小的数值规范和不同颜色的形式应用的变化的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
代码中使用'密度'参数。如果你想要做自己的检查,则需要看igraph
- 命名空间内:
ls(envir= as.environment("package:igraph"))
这确实创建了一个图形,但它不是很重复性。如果你提供了一个类似于你的用例的起点,会更好。 –
如果你没有回应反馈,人们会失去兴趣。我一直在为可能的途径构建测试用例,但问题的模糊性使我不愿意发布答案。 –
这与我的用例非常吻合,完全可重现。如果您希望图形每次都将“set.seed(777)”放在顶部 – skellpco