lets_plot.facet_grid

lets_plot.facet_grid(x=None, y=None, *, scales=None, x_order=1, y_order=1, x_format=None, y_format=None)

Split data by one or two faceting variables. For each data subset creates a plot panel and lays out panels as grid. The grid columns are defined by X faceting variable and rows are defined by Y faceting variable.

Parameters
xstr

Variable name which defines columns of the facet grid.

ystr

Variable name which defines rows of the facet grid.

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.

x_orderint, default=1

Specify ordering direction of columns. 1 - ascending, -1 - descending, 0 - no ordering.

y_orderint, default=1

Specify ordering direction of rows. 1 - ascending, -1 - descending, 0 - no ordering.

x_formatstr

Specify the format pattern for displaying faceting values in columns.

y_formatstr

Specify the format pattern for displaying faceting values in rows.

Returns
FeatureSpec

Facet grid specification.

Notes

Format pattern in the x_format / y_format parameters 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 https://lets-plot.org/pages/formats.html.

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_grid(x='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_grid(y='y', y_order=-1, y_format='.2f')