2017-04-13 19 views
2

Rとigraphを使ってグラフを描くと、色を使って頂点タイプをラベル付けしています。以下のコードを参照してください。色ではなくパターンで頂点を塗りつぶすことが可能なので、ノードタイプはカラーと白黒で見たときに区別できますか? 私は4つのユニークな色/パターンが必要です。カラーハンドブックの唯一のパレットはこれです: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の頂点があります。

> 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) 
enter image description here

"#ffffffff"でこれらを "白"にしたり、灰色の色合いを変えたりすることができます。plot.igraphが使用するパラダイムで、

rect(.8,.8,1,1, col=grey(.2), density=20, angle=45) 

しかし、私はplot.igraphコードで 'density'パラメータを使用していません。

ls(envir= as.environment("package:igraph")) 
関連する問題