Spaces:
Runtime error
Runtime error
| """ | |
| ======== | |
| 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() | |