PyGraphistry Tutorial


In [5]:
import pandas
import graphistry
graphistry.register(key='Email pygraphistry@graphistry.com to get your API key')

In [6]:
# Parse CSV using Pandas
links = pandas.read_csv('./lesmiserables.csv') ### FIX PATH

In [7]:
# Let's have a peak at our data by printing the first three rows
links[:3]


Out[7]:
source target value
0 Napoleon Myriel 1
1 Mlle.Baptistine Myriel 8
2 Mme.Magloire Myriel 10

In [8]:
# Plot graph using the source/target columns as source/destination of edges
plotter = graphistry.bind(source='source', destination='target')
plotter.plot(links)


Out[8]:

In [9]:
# New graph adding the number of encounters to edge labels.
links['label'] = links.value.map(lambda v: 'Num. Encounters: %d' % v)
plotter = plotter.bind(edge_label='label')
plotter.plot(links)


Out[9]:

Controling Node Size and Color

We are going to use Igraph to color nodes by community and size them using pagerank. To install igraph, use pip install python-igraph


In [10]:
# Convert our graph from Pandas to Igraph
import igraph
ig = plotter.pandas2igraph(links)
igraph.summary(ig)


IGRAPH D--- 77 254 -- 
+ attr: __nodeid__ (v), label (e), value (e)
WARNING: "node" is unbound, automatically binding it to "__nodeid__".

In [11]:
# We create two node attributes for pagerank and community
ig.vs['pagerank'] = ig.pagerank()
ig.vs['community'] = ig.community_infomap().membership 
igraph.summary(ig)


IGRAPH D--- 77 254 -- 
+ attr: __nodeid__ (v), community (v), pagerank (v), label (e), value (e)

In [12]:
# The plotter can plot Igraph directly
plotter.bind(point_color='community', point_size='pagerank').plot(ig)


Out[12]:

In [ ]: