3

ネットワークの draw_networkx() 関数で width 引数を指定して、エッジに使用する線幅を変更すると、次のようになります。

nx.draw_networkx(G, width = 0.03)

使った結果のイメージ

plt.show()

予想通りです(エッジ幅を制御できるという点で)。ただし、使用する場合:

plt.savefig('foo.pdf')

結果のpdfは、影響を受けていないエッジ幅を持っているように見えます。png として保存するとうまくいくようですが、実際には pdf 出力が必要です。例として、networkx Web サイトのサンプル コードを少し変更しました。

import networkx as nx
import matplotlib.pyplot as plt

G=nx.random_geometric_graph(200,0.125)

pos=nx.get_node_attributes(G,'pos')


dmin=1
ncenter=0
for n in pos:
    x,y=pos[n]
    d=(x-0.5)**2+(y-0.5)**2
    if d<dmin:
        ncenter=n
        dmin=d

p=nx.single_source_shortest_path_length(G,ncenter)

plt.figure(figsize=(8,8))
nx.draw_networkx_edges(G,pos,nodelist=[ncenter],alpha=1, width = 0.03)
nx.draw_networkx_nodes(G,pos,nodelist=p.keys(),
                   node_size=80,
                   node_color=p.values(),
                   cmap=plt.cm.Reds_r)

plt.xlim(-0.05,1.05)
plt.ylim(-0.05,1.05)

plt.savefig('random_geometric_graph.pdf')
plt.show()

(右側のpdf)http://i49.tinypic.com/2501h6c.jpgの画像になります

Mac のプレビューと Adob​​e で pdf を操作しようとしましたが、問題は解決しません。

どんな助け/提案も大歓迎です!

4

0 に答える 0