In [60]:
import sys

sys.path.append('../../code/')
import os
import json
from datetime import datetime
import time

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as stats

import igraph as ig

from load_data import load_citation_network_igraph, case_info

%load_ext autoreload
%autoreload 2
%matplotlib inline

data_dir = '../../data/'
court_name = 'scotus'


The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload

In [37]:
# this will be a little slow the first time you run it
G = load_citation_network_igraph(data_dir, court_name, directed=False)
G.delete_vertices([29701]) # remove detroit


0 seconds for 249878 edges

In [48]:
mod = G.community_fastgreedy()

mod_cluster = mod.as_clustering()

mod_mem = mod_cluster.membership


community_sizes = {c: mod_mem.count(c) for c in set(mod_mem)}
# sorted(mod_cluster.sizes(), reverse=True)

In [51]:
[c for c in community_sizes.keys() if community_sizes[c] > 1000]


Out[51]:
[0, 2, 3, 5]

In [93]:
layout = []

for v in G.vs:
    layout.append([v['year'], -v.indegree()])

visual_style = {}
visual_style["layout"] = layout

# # vertices

visual_style['vertex_size'] = 2

vertex_colors = []
for i in range(len(G.vs)):
    if mod_mem[i] == 0:
        vertex_colors.append('red')
    else:
        vertex_colors.append('black')

visual_style['vertex_color'] = vertex_colors
visual_style['vertex_frame_color'] = vertex_colors

visual_style['edge_arrow_size'] = 0
visual_style['edge_width'] = .01
visual_style['edge_alpha'] = .1

In [96]:
# ig.plot(G, **visual_style)

In [ ]: