# pyalluv.plotting¶

class AlluvialPlot(clusters, axes, y_pos='overwrite', cluster_w_spacing=1, cluster_kwargs={}, flux_kwargs={}, label_kwargs={}, **kwargs)[source]

Bases: object

Parameters: clusters (dict[str, dict], dict[float, list] or list[list]) – You have 2 options to create an Alluvial diagram: raw data: dict[str, dict] NOT IMPLEMENTED YETProvide for each cluster (key) a dictionary specifying the out-fluxes in the form of a dictionary (key: cluster, value: flux). Note The key None can hold a dictionary specifying fluxes from/to outside the system. If is present in the provided dictionary it allows to specify in-fluxes, i.e. data source that were not present at the previous slice. If it is present in the out-fluxes of a cluster, the specified amount simply vanishes and will not lead to a flux. collections of Cluster: dict[float, list] and list[list] If a list is provided each element must be a list of Cluster objects. A dictionary must provide a list of Cluster (value) for a horizontal position (key), e.g. {1.0: [c11, c12, ...], 2.0: [c21, c22, ...], ...}. axes (matplotlib.axes.Axes) – Axes to draw an Alluvial diagram on. y_pos (str) – options: 'overwrite', 'keep', 'complement', 'sorted' ’overwrite’: Ignore existing y coordinates for a cluster and set the vertical position to minimize the vertical displacements of all fluxes. ’keep’: use the cluster’s y_pos. If a cluster has no y position set this raises an exception. ’complement’: use the cluster’s y_pos if set. Cluster without y position are positioned relative to the other clusters by minimizing the vertical displacements of all fluxes. ’sorted’: NOT IMPLEMENTED YET cluster_w_spacing (float, int (default=1)) – Vertical spacing between clusters cluster_kwargs (dict (default={})) – dictionary styling the Path elements of clusters. Keys: facecolor, edgecolor, alpha, linewidth, … cluster_kwargs – dictionary styling the PathPatch of clusters. for a list of available options see PathPatch flux_kwargs (dict (default={})) – dictionary styling the PathPatch of fluxes. for a list of available options see PathPatch Note Passing a string to facecolor and/or edgecolor allows to color fluxes relative to the color of their source or target clusters. 'source_cluster' or 'target_cluster': will set the facecolor equal to the color of the respective cluster.'cluster' and 'source_cluster' are equivalent. '_reside' or '_migration': set the color based on whether source and target cluster have the same color or not. '' should be either 'source_cluster' or 'target_cluster' and determines the cluster from which the color is taken.Examples: facecolor='cluster_reside' set facecolor to the color of the source cluster if both source and target cluster are of the same color. edgecolor='cluster_migration' set edgecolor to the color of the source cluster if source and target cluster are of different colors. optional parameter (**kwargs) – x_lim: tuple the horizontal limit values for the Axes. y_lim: tuple the vertical limit values for the Axes. set_x_pos: bool if clusters is a dict then the key is set for all clusters cluster_width: float (NOT IMPLEMENTED) overwrites width of all clusters format_xaxis: bool (default=True) If set to True the axes is formatted according to the data provided. For now, this is only relevant if the horizontal positions are datetime objects. See set_dates_xaxis() for further informations. x_axis_offset: float how much space (relative to total height) should be reserved for the x_axis. If set to 0.0, then the x labels will not be visible. fill_figure: bool indicating whether or not set the axis dimension to fill up the entire figure invisible_x/invisible_y: bool whether or not to draw these axis. y_fix: dict with x_pos as keys and a list of tuples (cluster labels) as values. The position of clusters (tuples) are swapped. redistribute_vertically: int (default=4) how often the vertical pairwise swapping of clusters at a given time point should be performed.
clusters

Holds for each vertical position a list of Cluster objects.

Type: dict
color_clusters(patches, colormap=<matplotlib.colors.LinearSegmentedColormap object>)[source]

unused

Parameters: patches (list[PathPatch]) – Cluster patches to color. colormap (matplotlib.cm (default=’rainbow’)) – See the matplotlib tutorial for colormaps (link) for details.
distribute_clusters(x_pos)[source]

Distribute the clusters for a given x_position vertically

Parameters: x_pos (float) – The horizontal position at which the clusters should be distributed. This must be a key of the clusters attribute.
get_labelcollection(*args, **kwargs)[source]
get_patchcollection(match_original=True, cluster_kwargs={}, flux_kwargs={}, *args, **kwargs)[source]

Gather the patchcollection to add to the axes

Parameters: kwargs – Options:
set_dates_xaxis(ax, resolution='months')[source]

Format the x axis in case datetime objects are provide for the horizontal placement of clusters.

Parameters: ax (Axes) – Object to plot the alluvial diagram on. resolution (str (default='months')) – Possible values are 'months' and 'weeks'. This determines the resolution of the minor ticks via set_minor_formatter. The major tick is then either given in years or months. Todo Include further options or allow passing parameters directly to set_minor_formatter() and set_major_formatter().