2017-11-25 13 views
2

これは非常に微妙な質問のように聞こえるかもしれませんが、このグラフを可能な限りきれいにするよう努めています。私はRでバスケットボールのためのネットワークグラフを作成しています。私は数日前にこの投稿を作った - Draw beautiful network graphs in R - と私は模倣しようとしているグラフの種類を示しています。Rでigraphを使用すると、エッジカーブがまったく滑らかにならない

igraphパッケージを使用して、ほとんどの場合グラフを再作成できました。以下の例では、データフレームと私はあまりにも使用しています:

library(igraph) 
nba.nodes <- data.frame(id = c('s01', 's02', 's03', 's04', 's05'), 
         color = c('darkred', 'darkblue', 'darkgreen', 'darkorange', 'darkmagenta'), 
         names = c('Jarrett\nJack', 'Tim\nHardaway', 'Courtney\nLee', 'Kristaps\nPorzingis', 'Enes\nKanter')) 

nba.edges <- data.frame(from = c('s01', 's01', 's01', 's01', 
           's02', 's02', 's02', 's02', 
           's03', 's03', 's03', 's03', 
           's04', 's04', 's04', 's04', 
           's05', 's05', 's05', 's05'), 
         to = c('s02', 's03', 's04', 's05', 
           's01', 's03', 's04', 's05', 
           's01', 's02', 's04', 's05', 
           's01', 's02', 's03', 's05', 
           's01', 's02', 's03', 's04'), 
         width = sample(1:12, 20, replace = TRUE)) 

nba.net <- graph_from_data_frame(d = nba.edges, vertices = nba.nodes, directed = T) 

# ignore the layout = l, i have this commented out, was just testing it 
# l <- layout_in_circle(nba.net) 
plot(nba.net, # layout = l, 
    vertex.size = 20, 
    edge.curved = 0.3, 
    vertex.label = V(nba.net)$names, 
    vertex.label.dist = 4, 
    vertex.label.font = 2) 

あなたが見ることができるように、プロットはいいですが、私はedge.curvedパラメータがどのように機能するかと非常に不幸です。私が共有しているリンクのグラフに似ている滑らかな曲線の稜線を描くのではなく、辺がこれらの曲がった線である...私はパラメータをedge.curvedに設定したほうが大きい。私が望んでいた曲線。

あなたが知っているように、共有されたリンクiのグラフの辺は、完全な曲線(円の曲率を持つという意味で完璧)であるように見えます。 igraphを使ってこれを行う方法はありますか?どのような助けもこれで感謝します、ありがとう!

答えて

0

画面上でより良い画像を取得しようとしている場合、私は助けがありません。しかし、画像を保存しようとしている場合(用紙やPowerPointに含めるなど)、別のグラフィックスデバイスを使用してエイリアシングなしで画像を取得できます。試してみてください:

png('Graph.png', 500, 500, type='cairo') 
plot(nba.net, # layout = l, 
    vertex.size = 20, 
    edge.curved = 0.3, 
    vertex.label = V(nba.net)$names, 
    vertex.label.dist = 4, 
    vertex.label.font = 2) 
dev.off() 

そして、現在のディレクトリに出力を探して(getwd()を使用)

関連する問題