Skip to content

Table functions

API reference for all built-in CapturedCallable table functions to be used in the AgGrid and Table models. The how-to guide on tables contains more information.

vizro.tables

dash_ag_grid

dash_ag_grid(data_frame, **kwargs)

Implementation of dash_ag_grid.AgGrid with sensible defaults to be used in AgGrid.

Parameters:

  • data_frame (DataFrame) –

    DataFrame containing the data to be displayed.

  • kwargs (Any, default: {} ) –

    Additional keyword arguments to be passed to the dash_ag_grid.AgGrid component.

Returns:

  • AgGrid

    A dash_ag_grid.AgGrid component with sensible defaults.

Examples:

Wrap inside vm.AgGrid to use as a component inside vm.Page or vm.Container.

>>> import vizro.models as vm
>>> from vizro.tables import dash_ag_grid
>>> vm.Page(title="Page", components=[vm.AgGrid(figure=dash_ag_grid(...))])
Source code in src/vizro/tables/_dash_ag_grid.py
@capture("ag_grid")
def dash_ag_grid(data_frame: pd.DataFrame, **kwargs: Any) -> dag.AgGrid:
    """Implementation of `dash_ag_grid.AgGrid` with sensible defaults to be used in [`AgGrid`][vizro.models.AgGrid].

    Args:
        data_frame: DataFrame containing the data to be displayed.
        kwargs: Additional keyword arguments to be passed to the `dash_ag_grid.AgGrid` component.

    Returns:
        A `dash_ag_grid.AgGrid` component with sensible defaults.

    Examples:
        Wrap inside `vm.AgGrid` to use as a component inside `vm.Page` or `vm.Container`.
        >>> import vizro.models as vm
        >>> from vizro.tables import dash_ag_grid
        >>> vm.Page(title="Page", components=[vm.AgGrid(figure=dash_ag_grid(...))])

    """
    defaults = {
        "className": "ag-theme-quartz-dark ag-theme-vizro",
        "columnDefs": [{"field": col} for col in data_frame.columns],
        "rowData": data_frame.apply(
            lambda x: (
                x.dt.strftime("%Y-%m-%d")  # set date columns to `dateString` for AG Grid filtering to function
                if pd.api.types.is_datetime64_any_dtype(x)
                else x
            )
        ).to_dict("records"),
        "defaultColDef": {
            "resizable": True,
            "sortable": True,
            "filter": True,
            "filterParams": {
                "buttons": ["apply", "reset"],
                "closeOnApply": True,
            },
        },
        "dashGridOptions": {
            "dataTypeDefinitions": _DATA_TYPE_DEFINITIONS,
            "animateRows": False,
        },
        "style": {"height": "100%"},
    }
    kwargs = _set_defaults_nested(kwargs, defaults)
    return dag.AgGrid(**kwargs)

dash_data_table

dash_data_table(data_frame, **kwargs)

Standard dash.dash_table.DataTable with sensible defaults to be used in Table.

Parameters:

  • data_frame (DataFrame) –

    DataFrame containing the data to be displayed.

  • kwargs (Any, default: {} ) –

    Additional keyword arguments to be passed to the dash_table.DataTable component.

Returns:

  • DataTable

    A dash.dash_table.DataTable component with sensible defaults.

Examples:

Wrap inside vm.Table to use as a component inside vm.Page or vm.Container.

>>> import vizro.models as vm
>>> from vizro.table import dash_data_table
>>> vm.Page(title="Page", components=[vm.Table(figure=dash_data_table(...))])
Source code in src/vizro/tables/_dash_table.py
@capture("table")
def dash_data_table(data_frame: pd.DataFrame, **kwargs: Any) -> dash_table.DataTable:
    """Standard `dash.dash_table.DataTable` with sensible defaults to be used in [`Table`][vizro.models.Table].

    Args:
        data_frame: DataFrame containing the data to be displayed.
        kwargs: Additional keyword arguments to be passed to the `dash_table.DataTable` component.

    Returns:
        A `dash.dash_table.DataTable` component with sensible defaults.

    Examples:
        Wrap inside `vm.Table` to use as a component inside `vm.Page` or `vm.Container`.
        >>> import vizro.models as vm
        >>> from vizro.table import dash_data_table
        >>> vm.Page(title="Page", components=[vm.Table(figure=dash_data_table(...))])

    """
    defaults = {
        "columns": [{"name": col, "id": col} for col in data_frame.columns],
        "style_as_list_view": True,
        "style_cell": {"position": "static"},
        "style_data": {"border_bottom": "1px solid var(--border-subtleAlpha01)", "height": "40px"},
        "style_header": {
            "border_bottom": "1px solid var(--stateOverlays-selectedHover)",
            "border_top": "None",
            "height": "32px",
        },
        "style_data_conditional": [
            {
                "if": {"state": "active"},
                "backgroundColor": "var(--stateOverlays-selected)",
                "border": "1px solid var(--stateOverlays-selected)",
            }
        ],
    }
    kwargs = _set_defaults_nested(kwargs, defaults)
    return dash_table.DataTable(data=data_frame.to_dict("records"), **kwargs)