Last active
October 14, 2015 21:02
Revisions
-
Ruben Verweij revised this gist
Oct 14, 2015 . 1 changed file with 776 additions and 776 deletions.There are no files selected for viewing
LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed. -
Ruben Verweij revised this gist
Oct 14, 2015 . 2 changed files with 806 additions and 2010 deletions.There are no files selected for viewing
LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed.This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -16,7 +16,7 @@ g = Graph(vertex_attrs={"label": labels}, edges=edges, directed=True) # Add in/outdegree to label g.vs["label"] = [l+"\n\nIn: "+str(g.indegree(i))+" Out: "+str(g.outdegree(i)) for i,l in enumerate(g.vs["label"])] # Calculate outdegree degrees = g.outdegree() @@ -61,4 +61,4 @@ visual_style["margin"] = 50 # Plot the graph plot(g, target="diagram.svg", **visual_style) -
Ruben Verweij revised this gist
Oct 14, 2015 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -4,7 +4,7 @@ # Data edges = [(0,6),(0,7),(0,16),(0,19),(1,0),(1,3),(1,5),(1,16),(2,1),(2,3),(2,5),(2,11),(2,13),(2,14),(2,15),(2,16),(2,20),(2,22),(3,4),(3,12),(3,14),(3,16),(3,22),(4,22),(5,1),(5,2),(5,3),(5,6),(5,10),(5,11),(5,13),(5,14),(5,16),(5,20),(5,22),(5,23),(6,7),(6,19),(7,0),(7,4),(7,16),(7,18),(7,19),(8,0),(8,9),(8,16),(8,22),(9,0),(9,16),(10,0),(10,6),(11,0),(11,1),(11,3),(11,4),(11,7),(11,10),(11,13),(11,14),(11,16),(11,22),(12,0),(12,1),(12,6),(12,10),(12,11),(12,13),(12,14),(12,16),(12,20),(12,21),(12,22),(13,0),(13,6),(13,9),(13,14),(13,16),(13,18),(14,0),(14,1),(14,6),(14,9),(14,10),(14,20,),(14,22),(15,0),(15,3),(15,5),(15,8),(15,9),(15,12),(15,13),(15,16),(15,20),(15,21),(15,22),(15,23),(16,6),(16,7),(16,10),(16,14),(16,20),(16,22),(17,0),(17,2),(17,3),(17,8),(17,9),(17,10),(17,15),(17,22),(18,0),(18,11),(18,16),(18,19),(19,11),(20,6),(20,7),(20,19),(21,8),(21,9),(21,22),(22,4),(22,9),(22,19),(23,20)] labels = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x"] N = len(labels) @@ -61,4 +61,4 @@ visual_style["margin"] = 50 # Plot the graph plot(g, target="diagram.svg", **visual_style) -
Ruben Verweij revised this gist
Oct 14, 2015 . 1 changed file with 2 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,6 +1,5 @@ from igraph import * import numpy as np # Data edges = [(0,6),(0,7),(0,16),(0,19),(1,0),(1,3),(1,5),(1,16),(2,1),(2,3),(2,5),(2,11),(2,13),(2,14),(2,15),(2,16),(2,20),(2,22),(3,4),(3,12),(3,14),(3,16),(3,22),(4,22),(5,1),(5,2),(5,3),(5,6),(5,10),(5,11),(5,13),(5,14),(5,16),(5,20),(5,22),(5,23),(6,7),(6,19),(7,0),(7,4),(7,16),(7,18),(7,19),(8,0),(8,9),(8,16),(8,22),(9,0),(9,16),(10,0),(10,6),(11,0),(11,1),(11,3),(11,4),(11,7),(11,10),(11,13),(11,14),(11,16),(11,22),(12,0),(12,1),(12,6),(12,10),(12,11),(12,13),(12,14),(12,16),(12,20),(12,21),(12,22),(13,0),(13,6),(13,9),(13,14),(13,16),(13,18),(14,0),(14,1),(14,6),(14,9),(14,10),(14,20,),(14,22),(15,0),(15,3),(15,5),(15,8),(15,9),(15,12),(15,13),(15,16),(15,20),(15,21),(15,22),(15,23),(16,6),(16,7),(16,10),(16,14),(16,20),(16,22),(17,0),(17,2),(17,3),(17,8),(17,9),(17,10),(17,15),(17,22),(18,0),(18,11),(18,16),(18,19),(19,11),(20,6),(20,7),(20,19),(21,8),(21,9),(21,22),(22,4),(22,9),(22,19),(23,20)] @@ -38,7 +37,7 @@ communities = g.community_edge_betweenness(directed=True) clusters = communities.as_clustering() # Alternative community detection #clusters = g.community_infomap(vertex_weights=degrees, trials=1) # Set edge weights based on communities @@ -62,4 +61,4 @@ visual_style["margin"] = 50 # Plot the graph plot(g, target="diagram.svg", **visual_style) -
Ruben Verweij revised this gist
Feb 27, 2015 . 2 changed files with 2108 additions and 14 deletions.There are no files selected for viewing
LoadingSorry, something went wrong. Reload?Sorry, we cannot display this file.Sorry, this file is invalid so it cannot be displayed.This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,20 +1,20 @@ from igraph import * import numpy as np import time # Data edges = [(0,6),(0,7),(0,16),(0,19),(1,0),(1,3),(1,5),(1,16),(2,1),(2,3),(2,5),(2,11),(2,13),(2,14),(2,15),(2,16),(2,20),(2,22),(3,4),(3,12),(3,14),(3,16),(3,22),(4,22),(5,1),(5,2),(5,3),(5,6),(5,10),(5,11),(5,13),(5,14),(5,16),(5,20),(5,22),(5,23),(6,7),(6,19),(7,0),(7,4),(7,16),(7,18),(7,19),(8,0),(8,9),(8,16),(8,22),(9,0),(9,16),(10,0),(10,6),(11,0),(11,1),(11,3),(11,4),(11,7),(11,10),(11,13),(11,14),(11,16),(11,22),(12,0),(12,1),(12,6),(12,10),(12,11),(12,13),(12,14),(12,16),(12,20),(12,21),(12,22),(13,0),(13,6),(13,9),(13,14),(13,16),(13,18),(14,0),(14,1),(14,6),(14,9),(14,10),(14,20,),(14,22),(15,0),(15,3),(15,5),(15,8),(15,9),(15,12),(15,13),(15,16),(15,20),(15,21),(15,22),(15,23),(16,6),(16,7),(16,10),(16,14),(16,20),(16,22),(17,0),(17,2),(17,3),(17,8),(17,9),(17,10),(17,15),(17,22),(18,0),(18,11),(18,16),(18,19),(19,11),(20,6),(20,7),(20,19),(21,8),(21,9),(21,22),(22,4),(22,9),(22,19),(23,20)] labels = ["Gebrek aan wederzijds vertrouwen", "NNL bestuurt vanuit machtspositie", "NNL is veel gericht op KPI's", "Lage betrokkenheid van medewerkers bij merk en organisatie", "Wat je geeft is wat je krijgt", "NNL lijkt vaak een doorgeefluik van Frankrijk", "Dealers zijn risicomijdend", "Dealer blijft vaak hangen in eigen mening /visie", "Veel verschillende contactpersonen voor de dealer", "Helderheid over afspraken niet goed genoeg", "Laag dealerrendement icm investeringseisen", "Onprettige attitude bij sommige medewerkers", "NNL weinig besef van werkelijkheid bij dealerbedrijf", "NNL is onvoorspelbaar met acties en duwmomenten", "Dealer moet veel geven en mag weinig nemen, 1 richtingsverkeer", "Onvoldoende interne communicatie en samenwerking bij NNL", "Onvoldoende wederzijds begrip en respect", "Afhankelijkheid Frankrijk vertragend en belemmerend", "Dealer heeft onvoldoende lange termijnvisie", "Dealer moet lang wennen aan veranderingen", "Hoge investerings-, voorraad- en trainingseisen voor dealers", "Veel verschillende nauwelijks samenwerkende systemen", "Contact erg omslachtig of heeft slechte opvolging", "Gebrek aan een goede en krachtige netwerk strategie"] N = len(labels) # Define colors used for outdegree visualization colours = ['#ffffb2', '#fecc5c', '#fd8d3c', '#e31a1c'] # Graph generation g = Graph(vertex_attrs={"label": labels}, edges=edges, directed=True) # Add in/outdegree to label g.vs["label"] = [l+"\n\nIn: "+str(g.indegree(i))+" Uit: "+str(g.outdegree(i)) for i,l in enumerate(g.vs["label"])] @@ -35,11 +35,11 @@ edges["color"] = [color] # Community detection communities = g.community_edge_betweenness(directed=True) clusters = communities.as_clustering() # Community detection #clusters = g.community_infomap(vertex_weights=degrees, trials=1) # Set edge weights based on communities weights = {v: len(c) for c in clusters for v in c} @@ -52,12 +52,14 @@ # Other options visual_style["vertex_shape"] = "rectangle" visual_style["vertex_size"] = 85 visual_style["vertex_label_dist"] = 0 visual_style["vertex_label_size"] = 8 visual_style["vertex_frame_color"] = g.vs["color"] visual_style["vertex_label_family"] = "Calibri" visual_style["wrap_labels"] = True visual_style["bbox"] = (764,875) visual_style["margin"] = 50 # Plot the graph plot(g, target="diagram"+str(time.time())+".svg", **visual_style) -
Ruben Verweij revised this gist
Jan 22, 2015 . 1 changed file with 60 additions and 5 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,8 +1,63 @@ from igraph import * import numpy as np # Data N = 24 edges = [(0,6),(0,7),(0,16),(0,19),(1,0),(1,3),(1,5),(1,16),(2,1),(2,3),(2,5),(2,11),(2,13),(2,14),(2,15),(2,16),(2,20),(2,22),(3,4),(3,12),(3,14),(3,16),(3,22),(4,22),(5,1),(5,2),(5,3),(5,6),(5,10),(5,11),(5,13),(5,14),(5,16),(5,20),(5,22),(5,23),(6,7),(6,19),(7,0),(7,4),(7,16),(7,18),(7,19),(8,0),(8,9),(8,16),(8,22),(9,0),(9,16),(10,0),(10,6),(11,0),(11,1),(11,3),(11,4),(11,7),(11,10),(11,13),(11,14),(11,16),(11,22),(12,0),(12,1),(12,6),(12,10),(12,11),(12,13),(12,14),(12,16),(12,20),(12,21),(12,22),(13,0),(13,6),(13,9),(13,14),(13,16),(13,18),(14,0),(14,1),(14,6),(14,9),(14,10),(14,20,),(14,22),(15,0),(15,3),(15,5),(15,8),(15,9),(15,12),(15,13),(15,16),(15,20),(15,21),(15,22),(15,23),(16,6),(16,7),(16,10),(16,14),(16,20),(16,22),(17,0),(17,2),(17,3),(17,8),(17,9),(17,10),(17,15),(17,22),(18,0),(18,11),(18,16),(18,19),(19,11),(20,6),(20,7),(20,19),(21,8),(21,9),(21,22),(22,4),(22,9),(22,19),(23,20)] labels = ["Gebrek aan wederzijds vertrouwen", "NNL bestuurt vanuit machtspositie","NNL is vooral gericht op KPI's", "Medewerkers weinig betrokken bij merk en organisatie", "Wat je geeft is wat je krijgt", "NNL is vaak een doorgeefluik van Frankrijk", "Dealers zijn risicomijdend", "Dealer blijft vaak hangen in eigen mening /visie", "Veel verschillende contactpersonen voor de dealer", "Afspraken over rentals, targets, ed onduidelijk", "Slecht dealerrendement en hoge investeringseisen", "Medewerkers voelen zich soms verheven boven de dealer", "NNL onvoldoende besef van werkelijkheid bij dealerbedrijf", "NNL is onvoorspelbaar met acties en duwmomenten","Dealer moet veel geven en mag weinig nemen, 1 richtingsverkeer","Onvoldoende interne communicatie en samenwerking bij NNL","Onvoldoende wederzijds begrip en respect","Afhankelijkheid Frankrijk werkt vertragend en belemmerend","Dealer heeft onvoldoende lange termijnvisie","Dealer moet lang wennen aan veranderende processen","Hoge eisen voor dealers met voorraad, investeren, trainen, etc.","Veel losse systemen bij NNL die niet goed samenwerken","Contact is soms erg omslachtig of heeft slechte opvolging","Gebrek aan een goede en krachtige netwerk strategie"] # Define colors used for outdegree visualization colours = ['#fecc5c', '#fd8d3c', '#e31a1c', '#a31a1c'] # Graph generation g = Graph(N, edges, True) g.vs["label"] = labels # Add in/outdegree to label g.vs["label"] = [l+"\n\nIn: "+str(g.indegree(i))+" Uit: "+str(g.outdegree(i)) for i,l in enumerate(g.vs["label"])] # Calculate outdegree degrees = g.outdegree() # Order vertices in bins based on outdegree bins = np.linspace(0, max(degrees), len(colours)) digitized_degrees = np.digitize(degrees, bins) # Set colors according to bins g.vs["color"] = [colours[x-1] for x in digitized_degrees] # Also color the edges for ind, color in enumerate(g.vs["color"]): edges = g.es.select(_source=ind) edges["color"] = [color] # Community detection #communities = g.community_edge_betweenness(directed=True) #clusters = communities.as_clustering() # Community detection clusters = g.community_infomap(vertex_weights=degrees, trials=10) # Set edge weights based on communities weights = {v: len(c) for c in clusters for v in c} g.es["weight"] = [weights[e.tuple[0]] + weights[e.tuple[1]] for e in g.es] # Set visual style for the plot visual_style = {} # Choose the layout visual_style["layout"] = g.layout_fruchterman_reingold(weights=g.es["weight"], maxiter=1000, area=N**3, repulserad=N**3) # Other options visual_style["vertex_shape"] = "rectangle" visual_style["vertex_size"] = [x/max(degrees)*50+110 for x in degrees] visual_style["vertex_label_dist"] = 0 visual_style["vertex_label_size"] = 12 visual_style["wrap_labels"] = True visual_style["bbox"] = (3508,2480) visual_style["margin"] = 60 # Plot the graph plot(g, **visual_style) -
Ruben Verweij renamed this gist
Jan 19, 2015 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
Ruben Verweij created this gist
Jan 19, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,8 @@ from igraph import * g = Graph() g.add_vertices(13) g.add_edges([(0,1),(0,5),(1,9),(3,2),(3,4),(3,5),(3,7),(3,9),(5,4),(5,7),(6,5),(6,4),(6,7),(6,9),(7,2),(8,7),(8,2),(8,3),(9,8),(9,7),(9,10),(9,2),(10,8),(10,7),(11,12),(11,2),(11,5),(11,10),(11,9),(11,8),(11,4),(11,3),(12,7),(12,3),(12,2)]) layout = g.layout("kamada_kawai") plot(g, layout = layout)