2017-04-13 3 views
2

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) 
+0

을하지만 매우 재현성이 아니다 : 당신이 당신의 자신의 검사를 수행하려는 경우, 당신은 igraph -namespace 내부에보고해야합니다. 유스 케이스와 비슷한 시작점을 제공하면 더 좋을 것입니다. –

+1

피드백에 응답하지 않으면 사람들은 관심을 잃게됩니다. 잠재적 인 방법에 대한 테스트 사례를 작성했지만 질문의 애매 모호함으로 인해 답변을 게시하는 것을 꺼리게됩니다. –

+0

이것은 사용 사례와 거의 일치하며 완전히 재현 가능합니다. 매번 그래프가 동일하도록하려면 상단에 "set.seed (777)"를 넣으십시오. – skellpco

답변

1

그래프의 정점은 20 개입니다.

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) 

enter image description here :

> length(V(g)) 
[1] 20 

형상 인자 (?vertex.shape.pie가 상대적 세그먼트 크기의 수치 명세서 및 다양한 색상의 형태 변화 pie- "패턴"(또는 형상)을 적용 할 수있는 볼

"#ffffffff"로 "흰색"을 만들거나 회색 음영을 다양하게 만들 수 있습니다. 기본 그래픽 (plot.igraph에서 사용하는 패러다임 :

01)을 패턴화할 수 있습니다.
rect(.8,.8,1,1, col=grey(.2), density=20, angle=45) 

그러나 plot.igraph 코드에 '밀도'매개 변수가 사용되지 않습니다. 그래프를 작성하지

ls(envir= as.environment("package:igraph")) 
관련 문제