Skip to content

Plots: kolena.workflow.plot#

Legacy Warning

Content in this section reflects outdated practices or deprecated features. It's recommended to avoid using these in new developments.

While existing implementations using these features will continue to receive support, we strongly advise adopting the latest standards and tools for new projects to ensure optimal performance and compatibility. For more information and up-to-date practices, please refer to our newest documentation at docs.kolena.io.

This module surfaces plot definitions to visualize test-case-level data. Evaluator implementations can optionally compute plots using these definitions for visualization on the Results page.

The following plot types are available:

NumberSeries = Sequence[Union[float, int]] module-attribute #

A sequence of numeric values.

NullableNumberSeries = Sequence[Union[float, int, None]] module-attribute #

A sequence of numeric values or None.

AxisConfig #

Bases: DataObject

Configuration for the format of a given axis on a plot.

type: Literal[linear, log] instance-attribute #

Type of axis to display. Supported options are linear and log.

Plot #

Bases: TypedDataObject[_PlotType]

A data visualization shown when exploring model results in the web platform.

Curve #

Bases: DataObject

A single series on a CurvePlot.

x: NumberSeries instance-attribute #

The x coordinates of this curve. Length must match the provided y coordinates.

y: NumberSeries instance-attribute #

The y coordinates of this curve. Length must match the provided x coordinates.

label: Optional[str] = None class-attribute instance-attribute #

Optionally specify an additional label (in addition to the associated test case) to apply to this curve, for use when e.g. there are multiple curves generated per test case.

extra: Optional[Dict[str, NumberSeries]] = None class-attribute instance-attribute #

Optionally specify additional series shown when hovering over the plot. For example, when plotting a precision-recall curve, it is desirable to include an extra series threshold to specify the confidence threshold value at which a given precision-recall point occurs.

CurvePlot #

Bases: Plot

A plot visualizing one or more curves per test case.

Examples include Receiver Operating Characteristic (ROC) curves, Precision versus Recall (PR) curves, Detection-Error Tradeoff (DET) curves, etc.

title: str instance-attribute #

The title for the plot.

x_label: str instance-attribute #

The label describing the plot's x axis.

y_label: str instance-attribute #

The label describing the plot's y axis.

curves: List[Curve] instance-attribute #

A test case may generate zero or more curves on a given plot. However, under most circumstances, a single curve per test case is desirable.

x_config: Optional[AxisConfig] = None class-attribute instance-attribute #

Custom options to allow for control over the display of the plot x axis. See AxisConfig for details.

y_config: Optional[AxisConfig] = None class-attribute instance-attribute #

Custom options to allow for control over the display of the plot y axis. See AxisConfig for details.

Histogram #

Bases: Plot

A plot visualizing distribution of one or more continuous values, e.g. distribution of an error metric across all samples within a test case.

For visualization of discrete values, see BarPlot.

title: str instance-attribute #

The title for the plot.

x_label: str instance-attribute #

The label describing the plot's x axis.

y_label: str instance-attribute #

The label describing the plot's y axis.

buckets: NumberSeries instance-attribute #

A Histogram requires intervals to bucket the data. For n buckets, n+1 consecutive bounds must be specified in increasing order.

frequency: Union[NumberSeries, Sequence[NumberSeries]] instance-attribute #

For n buckets, there are n frequencies corresponding to the height of each bucket. The frequency at index i corresponds to the bucket with bounds (i, i+1) in buckets.

To specify multiple distributions for a given test case, multiple frequency series can be provided, corresponding e.g. to the distribution for a given class within a test case, with name specified in labels.

Specify a list of labels corresponding to the different frequency series when multiple series are provided. Can be omitted when a single frequency series is provided.

labels: Optional[List[str]] = None class-attribute instance-attribute #

Specify the label corresponding to a given distribution when multiple are specified in frequency.

x_config: Optional[AxisConfig] = None class-attribute instance-attribute #

Custom options to allow for control over the display of the plot x axis. See AxisConfig for details.

y_config: Optional[AxisConfig] = None class-attribute instance-attribute #

Custom options to allow for control over the display of the plot y axis. See AxisConfig for details.

BarPlot #

Bases: Plot

A plot visualizing a set of bars per test case.

title: str instance-attribute #

The plot title.

x_label: str instance-attribute #

Axis label for the axis along which the bars are laid out (labels).

y_label: str instance-attribute #

Axis label for the axis corresponding to bar height (values).

labels: Sequence[Union[str, int, float]] instance-attribute #

Labels for each bar with corresponding height specified in values.

values: NullableNumberSeries instance-attribute #

Values for each bar with corresponding label specified in labels.

config: Optional[AxisConfig] = None class-attribute instance-attribute #

Custom format options to allow for control over the display of the numerical plot axis (values).

ConfusionMatrix #

Bases: Plot

A confusion matrix. Example:

ConfusionMatrix(
    title="Cat and Dog Confusion",
    labels=["Cat", "Dog"],
    matrix=[[90, 10], [5, 95]],
)

Yields a confusion matrix of the form:

            Predicted

            Cat   Dog
           +----+----+
       Cat | 90 | 10 |
Actual     +----+----+
       Dog |  5 | 95 |
           +----+----+

title: str instance-attribute #

The plot title.

labels: List[str] instance-attribute #

The labels corresponding to each entry in the square matrix.

matrix: Sequence[NullableNumberSeries] instance-attribute #

A square matrix, typically representing the number of matches between class i and class j.

x_label: str = 'Predicted' class-attribute instance-attribute #

The label for the x axis of the confusion matrix.

y_label: str = 'Actual' class-attribute instance-attribute #

The label for the y axis of the confusion matrix.