faceted

Figures with precise control over overall width, overall height, plot aspect ratio, between-plot spacing, and colorbar dimensions.

_images/example_tair_edge_cbar1.png

Description

The purpose of this module is to make it easy to produce single-or-multi-panel figures in matplotlib with strict dimensional constraints. For example, perhaps you would like to make a figure that fits exactly within a column of a manuscript without any scaling, and you would like the panels to be as large as possible, but retain a fixed aspect ratio (height divided by width). Maybe some (or all) of your panels require an accompanying colorbar. With out of the box matplotlib tools this is actually somewhat tricky.

Internally, this module uses the flexible mpl_toolkits.axes_grid1.AxesGrid toolkit, with some additional logic to enable making these kinds of dimensionally-constrained panel plots with precise padding and colorbar size(s).

Another project with a similar motivation is panel-plots; however it does not have support for adding colorbars to a dimensionally-constrained figure. One part of the implementation there that inspired part of what is done here is the ability to add user-settable padding to the edges of the figure (to add space for axes ticks, ticklabels, and labels). This eliminates the need for using bbox_inches='tight' when saving the figure, and enables you to make sure that your figures are exactly the dimensions you need for your use.

Installation

You can install faceted from PyPI:

$ pip install faceted

or directly from source:

$ git clone https://github.com/spencerkclark/faceted.git
$ cd faceted
$ pip install -e .

Documentation