概要
The code is (using the python-networkx and python-matplotlib packages on Ubuntu GNU/Linux distribution):
#! /usr/bin/python
# coding: utf-8
import networkx
#import pylab
from pylab import pi, cos, sin, linspace, array
import matplotlib.pyplot as plt
import os
node_number = 20
initial_nodes = 2
animation = False
animation = True
G=networkx.barabasi_albert_graph(node_number, initial_nodes)
# pos=networkx.graphviz_layout(G, prog="dot")
type="shell4"
pos=networkx.shell_layout(G)
#pos=networkx.graphviz_layout(G,prog='twopi',args=)
print pos
dir=os.path.join("images", type)
if not os.path.isdir(dir):
os.mkdir(dir)
Ge = networkx.empty_graph(node_number)
#networkx.draw(GG,pos, node_color="w")
for i in range(initial_nodes,node_number):
nodes = range(i+1)
GG = G.subgraph(nodes)
plt.figure(figsize=(8,8))
networkx.draw(GG,pos, node_color="w", alpha=0.5, node_color="blue", node_size=20, with_labels=False, hold=False)
#networkx.draw(Ge,pos, node_color="w", alpha=0.5, node_color="blue", node_size=20, with_labels=False, hold=True)
#nx.draw(G,pos,node_size=20,alpha=0.5,node_color="blue", with_labels=False)
xmax=max(xx for xx,yy in pos.values())
xmin=min(xx for xx,yy in pos.values() + [(0,0)])
ymax=max(yy for xx,yy in pos.values())
ymin=min(yy for xx,yy in pos.values() + [(0,0)])
dx = xmax - xmin
ddx=0.1*dx
dy = ymax - ymin
ddy=0.1*dy
plt.xlim(xmin-ddx,xmax+ddx)
plt.ylim(ymin-ddy,ymax+ddy)
plt.savefig("%s/barabasi_%s%02d.png" % (dir, type, i))
if animation:
input = os.path.join(dir, "*.png")
output = os.path.join(dir, "barabasi_albert.gif")
os.system("convert -delay 100 -loop 0 %s %s" % (input, output))
(If someone knows how to eliminate the frame around the network, write to me, please.)
ライセンス
この作品の著作権者である私は、この作品を以下のライセンスで提供します。
|
この文書は、フリーソフトウェア財団発行のGNUフリー文書利用許諾書 (GNU Free Documentation License) 1.2またはそれ以降のバージョンの規約に基づき、複製や再配布、改変が許可されます。不可変更部分、表紙、背表紙はありません。このライセンスの複製は、GNUフリー文書利用許諾書という章に含まれています。http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue
|
- あなたは以下の条件に従う場合に限り、自由に
- 共有 – 本作品を複製、頒布、展示、実演できます。
- 再構成 – 二次的著作物を作成できます。
- あなたの従うべき条件は以下の通りです。
- 表示 – あなたは適切なクレジットを表示し、ライセンスへのリンクを提供し、変更があったらその旨を示さなければなりません。これらは合理的であればどのような方法で行っても構いませんが、許諾者があなたやあなたの利用行為を支持していると示唆するような方法は除きます。
- 継承 – もしあなたがこの作品をリミックスしたり、改変したり、加工した場合には、あなたはあなたの貢献部分を元の作品とこれと同一または互換性があるライセンスの下に頒布しなければなりません。
https://creativecommons.org/licenses/by-sa/3.0CC BY-SA 3.0 Creative Commons Attribution-Share Alike 3.0 truetrue
あなたは上記のライセンスから、どれか一つ以上を選択できます。