deepgraph.deepgraph.DeepGraph.plot_2d_generator

DeepGraph.plot_2d_generator(x, y, by, edges=False, C=None, C_split_0=None, kwds_scatter=None, kwds_quiver=None, kwds_quiver_0=None, passable_ax=False)

Plot nodes and corresponding edges by groups.

Create a generator of scatter plots of the nodes in v, split in groups by v.groupby(by). If edges is set True, also create a quiver plot of each group’s corresponding edges.

The xy-coordinates of the scatter plots are determined by the values of v[x] and v[y], where x and y are column names of v (the arrow’s coordinates are determined automatically).

In order to map colors to the arrows, either C or C_split_0 can be be passed, an array of the same length as e. Passing C creates a single quiver plot (qu). Passing C_split_0 creates two separate quiver plots, one for all edges where C_split_0 == 0 (qu_0), and one for all other edges (qu). By default, the arrows of qu_0 have no head, indicating “undirected” edges. This can be useful, for instance, when C_split_0 represents an array of temporal distances.

When mapping colors to arrows by setting C (or C_split_0), clim is automatically set to the min and max values of the entire array. In case one wants clim to be set to min and max values for each group’s colors, one may explicitly pass clim = None to kwds_quiver.

The same behaviour occurs when passing a sequence of g.n Numbers as colors c to kwds_scatter. In that case, vmin and vmax are automatically set to c.min() and c.max() of all nodes. Explicitly setting vmin and vmax to None, the min and max values of the groups’ color arrays are used.

In order to control the plotting parameters of the scatter, quiver and/or quiver_0 plots, one may pass keyword arguments by setting kwds_scatter, kwds_quiver and/or kwds_quiver_0.

If passable_ax is True, create a generator of functions. Each function takes a matplotlib axes object as input, and returns a scatter/quiver plot.

Parameters:
  • x (int or str) – A column name of v, determining the x-coordinates of the scatter plot of nodes.
  • y (int or str) – A column name of v, determining the y-coordinates of the scatter plot of nodes.
  • by (array_like) – Column name(s) of v, determining the groups to create plots of.
  • edges (bool, optional (default=True)) – Whether to create a quiver plot (2-D field of arrows) of the edges between the nodes.
  • C (array_like, optional (default=None)) – An optional array used to map colors to the arrows. Must have the same length es e. Has no effect if C_split_0 is passed as an argument.
  • C_split_0 (array_like, optional (default=None)) – An optional array used to map colors to the arrows. Must have the same length es e. If this parameter is passed, C has no effect, and two separate quiver plots are created (qu and qu_0).
  • kwds_scatter (dict, optional (default=None)) – kwargs to be passed to scatter.
  • kwds_quiver (dict, optional (default=None)) – kwargs to be passed to quiver (qu).
  • kwds_quiver_0 (dict, optional (default=None)) – kwargs to be passed to quiver (qu_0). Only has an effect if C_split_0 has been set.
  • passable_ax (bool, optional (default=False)) – If True, return a generator of functions. Each function takes a matplotlib axes object as input, and returns a dict of matplotlib objects.
Returns:

obj – If C_split_0 has been passed, return a generator of dicts of matplotlib objects with the following keys: [‘fig’, ‘ax’, ‘pc’, ‘qu’, ‘qu_0’, ‘group’]. Otherwise, return a generator of dicts with keys: [‘fig’, ‘ax’, ‘pc’, ‘qu’, ‘group’]. If passable_ax is True, return a generator of functions. Each function takes a matplotlib axes object as input, and returns a dict as described above.

Return type:

generator

Notes

When passing C_split_0, the color of the arrows in qu_0 can be set by passing the keyword argument color to kwds_quiver_0. The color of the arrows in qu, however, are determined by C_split_0.

The default drawing order is set to: 1. quiver_0 (zorder=1) 2. quiver (zorder=2) 3. scatter (zorder=3) This order can be changed by setting the zorder in kwds_quiver_0, kwds_quiver and/or kwds_scatter. See also http://matplotlib.org/examples/pylab_examples/zorder_demo.html