facet_wrap#

facet_wrap(facets, ncol=None, nrow=None, *, scales=None, order=1, format=None, dir='h', labwidth=None)#

Split data by one or more faceting variables. For each data subset creates a plot panel and lays out panels according to the ncol, nrow and dir settings.

Parameters:
facetsstr or list

One or more faceting variable names.

ncolint

Number of columns.

nrowint

Number of rows.

scalesstr

Specify whether scales are shared across all facets. ‘fixed’ - shared (the default), ‘free’ - vary across both rows and columns, ‘free_x’ or ‘free_y’ - vary across rows or columns respectively.

orderint or list, default=1

Specify ordering direction panels. 1 - ascending, -1 - descending, 0 - no ordering. When a list is given, then values in the list are positionally matched to variables in facets.

formatstr or list

Specify the format pattern for displaying faceting values. The format values are positionally matched to variables in facets.

dir{‘h’, ‘v’}, default=’h’

Direction: either ‘h’ for horizontal, or ‘v’ for vertical.

labwidthint or list

The maximum label length (in characters) before a line breaking is applied. If the original facet label already contains \n as a text separator, it splits at those points first, then wraps each part according to labwidth.

Returns:
FeatureSpec

Facet wrap specification.

Notes

Format patterns in the format parameter can be just a number format (like ‘d’) or a string template where number format is surrounded by curly braces: “{d} cylinders”.

For example:

  • ‘.2f’ -> ‘12.45’,

  • ‘Score: {.2f}’ -> ‘Score: 12.45’,

  • ‘Score: {}’ -> ‘Score: 12.454789’.

For more info see Formatting.

Examples

1import numpy as np
2from lets_plot import *
3LetsPlot.setup_html()
4n = 100
5np.random.seed(42)
6x = np.random.normal(size=n)
7group = np.random.choice(['a', 'b'], size=n)
8ggplot({'x': x, 'group': group}, aes(x='x')) + \
9    geom_histogram() + facet_wrap(facets='group')

 1import numpy as np
 2from lets_plot import *
 3LetsPlot.setup_html()
 4n = 1000
 5np.random.seed(42)
 6x = np.random.normal(size=n)
 7p = [1/6, 1/3, 1/2]
 8y = np.random.choice(p, size=n, p=p)
 9ggplot({'x': x, 'y': y}, aes(x='x')) + \
10    geom_histogram() + \
11    facet_wrap(facets='y', order=-1, ncol=2, dir='v', format='.2f')