BoxPlot
Median, quartiles, whiskers, and outliers per group. The Box Plot guide shows every feature on real data; this page is the contract: the function, the shape of its data, the keys style takes, and the constant each parameter accepts.
Function
datachart.charts.BoxPlot
BoxPlot(
data: (
list[BoxDataPointAttrs]
| list[list[BoxDataPointAttrs]]
),
*,
title: str | None = None,
xlabel: str | None = None,
ylabel: str | None = None,
subtitle: str | list[str | None] | None = None,
emphasis: (
EMPHASIS | str | list[str | None] | None
) = None,
emphasis_rule: EmphasisRuleAttrs | None = None,
figsize: FIG_SIZE | tuple[float, float] | None = None,
xmin: int | float | None = None,
xmax: int | float | None = None,
ymin: int | float | None = None,
ymax: int | float | None = None,
show_legend: bool | None = None,
legend: LegendSettingAttrs | None = None,
show_grid: SHOW_GRID | str | bool | None = None,
show_outliers: bool | None = None,
show_notch: bool | None = None,
show_values: bool | None = None,
value_format: VALUE_FORMAT | str | None = None,
aspect_ratio: ASPECT_RATIO | str | None = None,
orientation: (
ORIENTATION | str | None
) = ORIENTATION.VERTICAL,
sort: SORT | str | None = None,
scaley: SCALE | str | None = None,
subplots: bool | None = None,
max_cols: int | None = None,
sharex: bool | None = None,
sharey: bool | None = None,
style: (
BoxStyleAttrs | list[BoxStyleAttrs | None] | None
) = None,
xticks: (
list[int | float] | list[list[int | float]] | None
) = None,
xticklabels: list[str] | list[list[str]] | None = None,
xtickrotate: int | list[int | None] | None = None,
yticks: (
list[int | float] | list[list[int | float]] | None
) = None,
yticklabels: list[str] | list[list[str]] | None = None,
ytickrotate: int | list[int | None] | None = None,
xticks_format: (
VALUE_FORMAT | DATE_FORMAT | str | None
) = None,
yticks_format: (
VALUE_FORMAT | DATE_FORMAT | str | None
) = None,
vlines: (
VLineSettingAttrs
| list[VLineSettingAttrs]
| list[
VLineSettingAttrs
| list[VLineSettingAttrs]
| None
]
| None
) = None,
hlines: (
HLineSettingAttrs
| list[HLineSettingAttrs]
| list[
HLineSettingAttrs
| list[HLineSettingAttrs]
| None
]
| None
) = None,
vspans: (
VSpanSettingAttrs
| list[VSpanSettingAttrs]
| list[
VSpanSettingAttrs
| list[VSpanSettingAttrs]
| None
]
| None
) = None,
hspans: (
HSpanSettingAttrs
| list[HSpanSettingAttrs]
| list[
HSpanSettingAttrs
| list[HSpanSettingAttrs]
| None
]
| None
) = None,
texts: (
TextSettingAttrs
| list[TextSettingAttrs]
| list[
TextSettingAttrs | list[TextSettingAttrs] | None
]
| None
) = None,
label: str | list[str | None] | None = None,
value: str | list[str | None] | None = None
) -> plt.Figure
Creates the box plot.
A box plot summarizes a numeric distribution per group by its median, quartiles,
whiskers, and outliers. Use it to compare the level and spread of many groups
compactly, or to spot skew and outliers, when the full distribution shape is not
needed. For shape use ViolinPlot; for the raw
points use SwarmPlot.
Examples:
>>> from datachart.charts import BoxPlot
>>> figure = BoxPlot(
... data=[
... {"label": "Group A", "value": 10},
... {"label": "Group A", "value": 15},
... {"label": "Group A", "value": 12},
... {"label": "Group B", "value": 20},
... {"label": "Group B", "value": 25},
... {"label": "Group B", "value": 22},
... ],
... title="Basic Box Plot",
... xlabel="Group",
... ylabel="Value"
... )
| PARAMETER | DESCRIPTION |
|---|---|
data
|
The data points for the box plot(s). Can be a single list of data points
for one chart, or a list of lists for subplots (requires
TYPE:
|
title
|
The title of the chart.
TYPE:
|
xlabel
|
The x-axis label.
TYPE:
|
ylabel
|
The y-axis label.
TYPE:
|
subtitle
|
The subtitle(s) for individual charts: the subplot title and the legend label.
TYPE:
|
emphasis
|
The emphasis role(s), aligned with the box labels of one
call in input order, whatever the
TYPE:
|
emphasis_rule
|
A rule that highlights the groups matching it and mutes the rest:
TYPE:
|
figsize
|
The size of the figure.
TYPE:
|
xmin
|
The minimum x-axis value.
TYPE:
|
xmax
|
The maximum x-axis value.
TYPE:
|
ymin
|
The minimum y-axis value.
TYPE:
|
ymax
|
The maximum y-axis value.
TYPE:
|
show_legend
|
Whether to show the legend.
TYPE:
|
legend
|
The per-figure legend setting: title, location, column count
and alignment; each field falls back to the theme. See
TYPE:
|
show_grid
|
Which grid lines to show (e.g., "both", "x", "y");
TYPE:
|
show_outliers
|
Whether to show outliers. Defaults to True.
TYPE:
|
show_notch
|
Whether to show notched boxes for median confidence interval.
TYPE:
|
show_values
|
Whether to print each group's median beside its median line.
TYPE:
|
value_format
|
Format string for the value labels: a
TYPE:
|
aspect_ratio
|
The aspect ratio of the axes ("auto" or "equal"). See
TYPE:
|
orientation
|
The orientation of the boxes (vertical or horizontal).
TYPE:
|
sort
|
The order the groups are drawn in: None (input order),
"ascending", or "descending" by each group's median; ties keep
input order. One call draws one box dataset per axes, so there
is no second series to key on and no
TYPE:
|
scaley
|
The y-axis scale (e.g., "log", "linear").
TYPE:
|
subplots
|
Whether to create separate subplots for each chart; required for a list of datasets.
TYPE:
|
max_cols
|
Maximum number of columns in subplots (when subplots=True).
TYPE:
|
sharex
|
Whether to share the x-axis in subplots.
TYPE:
|
sharey
|
Whether to share the y-axis in subplots.
TYPE:
|
style
|
Style configuration(s) for the box(es).
TYPE:
|
xticks
|
Custom x-axis tick positions.
TYPE:
|
xticklabels
|
Custom x-axis tick labels.
TYPE:
|
xtickrotate
|
Rotation angle for x-axis tick labels.
TYPE:
|
yticks
|
Custom y-axis tick positions.
TYPE:
|
yticklabels
|
Custom y-axis tick labels.
TYPE:
|
ytickrotate
|
Rotation angle for y-axis tick labels.
TYPE:
|
xticks_format
|
The x-axis tick label format: a
TYPE:
|
yticks_format
|
The y-axis tick label format, as
TYPE:
|
vlines
|
Vertical line(s) to plot.
TYPE:
|
hlines
|
Horizontal line(s) to plot.
TYPE:
|
vspans
|
Vertical reference band(s) to shade, between two x positions.
TYPE:
|
hspans
|
Horizontal reference band(s) to shade, between two y positions.
TYPE:
|
texts
|
Text annotation(s) to draw.
TYPE:
|
label
|
The key name in data for label/category values (default: "label").
TYPE:
|
value
|
The key name in data for numeric values (default: "value").
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
plt.Figure
|
The figure containing the box plot. |
Data
Each record in data is a BoxDataPointAttrs; the label and value parameters rename its keys.
datachart.typings.BoxDataPointAttrs
Bases: TypedDict
The data point attributes for the box plot.
| ATTRIBUTE | DESCRIPTION |
|---|---|
label |
The category label.
TYPE:
|
value |
The numeric value.
TYPE:
|
Style
style takes the keys of BoxStyleAttrs. The chart also reads the shared groups it draws: value labels (ValueLabelStyleAttrs), reference lines (VLineStyleAttrs and HLineStyleAttrs), reference bands (VSpanStyleAttrs and HSpanStyleAttrs) and text annotations (TextStyleAttrs). Every key falls back to the theme, so the same keys set the default look through config.
datachart.typings.BoxStyleAttrs
Bases: TypedDict
The typing for the box plot style.
| ATTRIBUTE | DESCRIPTION |
|---|---|
plot_box_color |
The box fill color.
TYPE:
|
plot_box_alpha |
The alpha value of the box.
TYPE:
|
plot_box_linewidth |
The line width of the box.
TYPE:
|
plot_box_edgecolor |
The edge color of the box.
TYPE:
|
plot_box_outlier_marker |
The outlier marker style.
TYPE:
|
plot_box_outlier_size |
The outlier marker size.
TYPE:
|
plot_box_outlier_color |
The outlier marker color.
TYPE:
|
plot_box_outlier_edge_color |
The outlier marker edge color.
TYPE:
|
plot_box_median_color |
The median line color.
TYPE:
|
plot_box_median_linewidth |
The median line width.
TYPE:
|
plot_box_whisker_color |
The whisker line color.
TYPE:
|
plot_box_whisker_linewidth |
The whisker line width.
TYPE:
|
plot_box_cap_color |
The cap line color.
TYPE:
|
plot_box_cap_linewidth |
The cap line width.
TYPE:
|
plot_xticks_label_rotate |
The label rotation of the xticks.
TYPE:
|
plot_yticks_label_rotate |
The label rotation of the yticks.
TYPE:
|
plot_box_hatch |
The hatch pattern of the box.
TYPE:
|
Constants
The parameters that accept a constant, with the class in datachart.constants that lists its values.
| Parameter | Constant |
|---|---|
emphasis |
EMPHASIS |
figsize |
FIG_SIZE |
legend={"location": ..., "alignment": ...} |
LEGEND_LOCATION, LEGEND_ALIGN |
show_grid |
SHOW_GRID |
value_format |
VALUE_FORMAT |
aspect_ratio |
ASPECT_RATIO |
orientation |
ORIENTATION |
scaley |
SCALE |
xticks_format |
VALUE_FORMAT, DATE_FORMAT |
yticks_format |
VALUE_FORMAT, DATE_FORMAT |