2017-07-04 13 views
4

Ring/Donut Shaped Verticesでネットワークを描きたいと思います。私はIgraphのドキュメントでそのような形を見つけられませんでしたが、代わりに円の形をしていました。ここでIgraphでドーナツ形状の頂点を持つネットワークを表現する方法は?

library(igraph) 
g <- make_ring(10) 
values <- lapply(1:10, function(x) sample(1:10,3)) 
if (interactive()) { 
    plot(g, vertex.shape="pie", vertex.pie=values,    
     vertex.pie.color=list(heat.colors(5)), 
     vertex.size=seq(10,30,length=10), vertex.label=NA) 
} 

結果の画像::次のコードのように

enter image description here

あなたはIGRAPH自体を使用して頂点リング状/ドーナツにパイ形の頂点を回す方法を知っていますか?私は "vertex.pie.hole"パラメータを検索しましたが、存在しません。私がこれを行うのが最も簡単な方法は、頂点の重心に「白い点」を描くことですが、それは明らかに理想的な状況ではありません。

私たちは独自の頂点形状を定義することもできますが、リング/ドーナツ形状の場合はこれを行うのが本当に難しいと告白する必要があります。あなたの注意のための

どうもありがとう、

答えて

4

私が直接ドーナツをプロットする方法はありますかどうかわからないんだけど、ここでは同じ結果を得るためのハックです:私たちはあなたのコードを使用して、一度グラフをプロットし、我々はドーナツを作るために小さい白い円を重ねる。シードを設定すると、毎回頂点が同じ位置にあることが保証されます。あなたの答えのための

set.seed(2) 
    plot(g, vertex.shape="pie", vertex.pie=values,    
     vertex.pie.color=list(heat.colors(5)), 
     vertex.size=seq(10,30,length=10), vertex.label=NA) 

    set.seed(2) 
    plot(g, 
     vertex.size=seq(5,15,length=10), vertex.label=NA, 
     vertex.color="white", 
     edge.color=NA, 
     add=TRUE) 

enter image description here

+0

感謝!理想的な状況ではありませんが、それは間違いなく回避策です。 –

関連する問題