| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- """
- ========
- 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()
|