English: The evolution of a network by the Barabasi–Albert model. In every step, one new node appears, and in this case there is two new edges from the new node to the old ones.
Magyar: Egy hálózat fejlődése a Barabási–Albert modell szerint. Minden lépésben egy új csúcs jelenik meg, és ebben a változatban minden új csúcsból két él mutat a régi csúcsokhoz.
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.)
Conditions d’utilisation
Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous les licences suivantes :
Vous avez la permission de copier, distribuer et modifier ce document selon les termes de la GNU Free Documentation License version 1.2 ou toute version ultérieure publiée par la Free Software Foundation, sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture. Un exemplaire de la licence est inclus dans la section intitulée GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue
de partager – de copier, distribuer et transmettre cette œuvre
d’adapter – de modifier cette œuvre
Sous les conditions suivantes :
paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
partage à l’identique – Si vous modifiez, transformez, ou vous basez sur cette œuvre, vous devez distribuer votre contribution sous la même licence ou une licence compatible avec celle de l’original.
{{Information |Description={{en|1=The evolution of a graph by the Barabasi Albert model. In every step, one new node appears, and in this case there is two new edges from the new node to the old ones. }} {{hu|1=Egy gráf fejlődése a Barabási-Albert mod