2017-11-09 5 views
3

私はネットワークのpyを使って有向グラフをプロットしています。しかし、尖った矢の代わりに片方の端から矢の頭が太いことが分かりました。太いエッジを尖った矢印に変えたい。ここに私のコード、実際の出力と所望の出力は次のとおりです。networkxのarrowheadのタイプを変更する

import networkx as nx 
import matplotlib.pyplot as plt 

G=nx.DiGraph() 

item = [1,2] 

G.add_edge(*item) #color = item[-1], weight = 2) 

pos = nx.circular_layout(G)  
nx.draw(G, pos, with_labels = True, edge_color = 'b') 
plt.show() 

出力 enter image description here

所望の出力: enter image description here

任意の提案は本当に便利でしょうか?

答えて

0

これは、今のところnx.drawでは不可能です。 https://github.com/networkx/networkx/blob/master/networkx/drawing/nx_pylab.py#L584によれば、まだ実装されていません。

ただし、graphvizを使用してグラフをプロットすることができます。 Networkxにはグラフをgraphvizオブジェクトに簡単に変換するためのインターフェイスがあります。 https://networkx.github.io/documentation/stable/reference/drawing.html#module-networkx.drawing.nx_agraphを参照してください。

0

これは、networkxの開発版(networkx-2.1)で可能になりました。あなたのコードは今の矢印

In [5]: import networkx as nx 
    ...: import matplotlib.pyplot as plt 
    ...: 
    ...: G=nx.DiGraph() 
    ...: 
    ...: item = [1,2] 
    ...: 
    ...: G.add_edge(*item) #color = item[-1], weight = 2) 
    ...: 
    ...: pos = nx.circular_layout(G)  
    ...: nx.draw(G, pos, with_labels = True, edge_color = 'b') 
    ...: plt.show() 
    ...: 

enter image description here

を描きます
関連する問題