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.)
Licenciranje
Ja, nosilac autorskih prava nad ovim delom, objavljujem isto pod sledećim licencama:
Data je dozvola da se kopira, distribuira i/ili menja ovaj dokument pod uslovima GNU-ove licence za slobodnu dokumentaciju, verzije 1.2 ili bilo koje novije verzije koju objavi Zadužbina za slobodni softver; bez nepromenljivih odeljaka i bez teksta na naslovnoj i zadnjoj strani. Tekst licence možete pročitati ovde.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue
da delite – da umnožavate, raspodeljujete i prenosite delo
da prerađujete – da preradite delo
Pod sledećim uslovima:
autorstvo – Morate da date odgovarajuće zasluge, obezbedite vezu ka licenci i naznačite da li su izmene napravljene. Možete to uraditi na bilo koji razuman manir, ali ne na način koji predlaže da licencator odobrava vas ili vaše korišćenje.
deliti pod istim uslovima – Ako izmenite, preobrazite ili dogradite ovaj materijal, morate podeliti svoje doprinose pod istom ili kompatibilnom licencom kao 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