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, x_labwidth=None, y_labwidth=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.

x_labwidthint, default=None

The maximum label length (in characters) before a line breaking is applied. If the original facet label already contains \n as a text separator, the line breaking is not applied.

y_labwidthint, default=None

The maximum label length (in characters) before a line breaking is applied. If the original facet label already contains \n as a text separator, the line breaking is not applied.

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/python/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')