#!/usr/bin/env python """ ======== Football ======== Load football network in GML format and compute some network statistcs. Shows how to download GML graph in a zipped file, unpack it, and load into a NetworkX graph. Requires Internet connection to download the URL http://www-personal.umich.edu/~mejn/netdata/football.zip """ # Author: Aric Hagberg (hagberg@lanl.gov) # Copyright (C) 2007-2019 by # Aric Hagberg # Dan Schult # Pieter Swart # All rights reserved. # BSD license. try: # Python 3.x import urllib.request as urllib except ImportError: # Python 2.x import urllib import io import zipfile import matplotlib.pyplot as plt import networkx as nx url = "http://www-personal.umich.edu/~mejn/netdata/football.zip" sock = urllib.urlopen(url) # open URL s = io.BytesIO(sock.read()) # read into BytesIO "file" sock.close() zf = zipfile.ZipFile(s) # zipfile object txt = zf.read('football.txt').decode() # read info file gml = zf.read('football.gml').decode() # read gml data # throw away bogus first line with # from mejn files gml = gml.split('\n')[1:] G = nx.parse_gml(gml) # parse gml data print(txt) # print degree for each team - number of games for n, d in G.degree(): print('%s %d' % (n, d)) options = { 'node_color': 'black', 'node_size': 50, 'line_color': 'grey', 'linewidths': 0, 'width': 0.1, } nx.draw(G, **options) plt.show()