""" ======== 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 """ import urllib.request 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.request.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(f"{n:20} {d:2}") options = {"node_color": "black", "node_size": 50, "linewidths": 0, "width": 0.1} pos = nx.spring_layout(G, seed=1969) # Seed for reproducible layout nx.draw(G, pos, **options) plt.show()