BarChart
A value per category as bars; series grouped, stacked, or overlaid. The Bar Chart 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.BarChart
BarChart(
data: (
list[BarDataPointAttrs]
| list[list[BarDataPointAttrs]]
),
*,
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,
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_yerr: 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,
bar_mode: BAR_MODE | str | None = None,
sort: SORT | str | None = None,
sort_by: str | None = None,
emphasis_rule: EmphasisRuleAttrs | None = None,
scalex: SCALE | 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: (
BarStyleAttrs | list[BarStyleAttrs | 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,
y: str | list[str | None] | None = None,
yerr: str | list[str | None] | None = None
) -> plt.Figure
Creates the bar chart.
Bars compare a numeric value across discrete categories: each label gets a bar whose
length encodes its value. Use it when the categories are few and unordered (or
ordinal) and the question is "which is bigger, and by how much"; several series can
be grouped, stacked, or overlaid via bar_mode. For a continuous x-axis reach for
LineChart, for distributions for
Histogram.
Examples:
>>> from datachart.charts import BarChart
>>> figure = BarChart(
... data=[
... {"label": "cat1", "y": 5},
... {"label": "cat2", "y": 10},
... {"label": "cat3", "y": 15},
... {"label": "cat4", "y": 20},
... {"label": "cat5", "y": 25}
... ],
... title="Basic Bar Chart",
... xlabel="LABEL",
... ylabel="Y"
... )
| PARAMETER | DESCRIPTION |
|---|---|
data
|
The data points for the bar chart(s). Can be a single list of data points for one chart, or a list of lists for multiple charts/subplots.
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. Used as legend labels.
TYPE:
|
emphasis
|
The emphasis role(s) for individual charts, aligned like
TYPE:
|
figsize
|
The size of the figure as (width, height) in inches. See
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 ("both", "x", "y");
TYPE:
|
show_yerr
|
Whether to show y-axis error bars.
TYPE:
|
show_values
|
Whether to show bar value labels at the edge of each bar.
TYPE:
|
value_format
|
Format string for bar value labels: a
TYPE:
|
aspect_ratio
|
The aspect ratio of the axes ("auto" or "equal"). See
TYPE:
|
bar_mode
|
How multiple bar series share the axis: "group" (side-by-side),
"stack" (stacked), or "overlay" (overlapping). See
TYPE:
|
sort
|
The order the categories are drawn in: None (input order),
"ascending", or "descending" by value. One order serves every
series, keyed by the total across them; ties keep input order.
See
TYPE:
|
sort_by
|
The subtitle of the one series whose values key the sort instead of the total. A category that series lacks sorts last.
TYPE:
|
emphasis_rule
|
A one-key dict that highlights the bars matching it and mutes the
rest:
TYPE:
|
orientation
|
The orientation of the bars ("vertical" or "horizontal").
See
TYPE:
|
scalex
|
The x-axis scale ("linear", "log", "symlog", "asinh"). Useful
for horizontal bars. See
TYPE:
|
scaley
|
The y-axis scale ("linear", "log", "symlog", "asinh"). Useful
for vertical bars. See
TYPE:
|
subplots
|
Whether to create separate subplots for each chart.
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 bar(s).
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 values (default: "label").
TYPE:
|
y
|
The key name in data for y-axis values (default: "y").
TYPE:
|
yerr
|
The key name in data for y-axis error values (default: "yerr").
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
plt.Figure
|
The figure containing the bar chart. |
Data
Each record in data is a BarDataPointAttrs; the emphasis, label, y and yerr parameters rename its keys.
datachart.typings.BarDataPointAttrs
Bases: TypedDict
The data point attributes for the bar chart.
| ATTRIBUTE | DESCRIPTION |
|---|---|
label |
The label.
TYPE:
|
y |
The y-axis value.
TYPE:
|
yerr |
The y-axis error value.
TYPE:
|
emphasis |
The bar's own emphasis role
("background" or "highlight"); wins over the chart's
TYPE:
|
Style
style takes the keys of BarStyleAttrs. 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.BarStyleAttrs
Bases: TypedDict
The typing for the bar chart style.
| ATTRIBUTE | DESCRIPTION |
|---|---|
plot_bar_color |
The bar color.
TYPE:
|
plot_bar_alpha |
The alpha value of the bar.
TYPE:
|
plot_bar_width |
The width of the bar.
TYPE:
|
plot_bar_zorder |
The zorder of the bar.
TYPE:
|
plot_bar_hatch |
The hatch style of the bar.
TYPE:
|
plot_bar_edge_width |
The edge width of the bar.
TYPE:
|
plot_bar_edge_color |
The edge color of the bar.
TYPE:
|
plot_bar_error_color |
The color of the error line of the bar.
TYPE:
|
plot_bar_value_fontsize |
Alias of
TYPE:
|
plot_bar_value_color |
Alias of
TYPE:
|
plot_bar_value_padding |
Alias of
TYPE:
|
plot_xticks_label_rotate |
The label rotation of the xticks in the bar chart.
TYPE:
|
plot_yticks_label_rotate |
The label rotation of the yticks in the bar chart.
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 |
bar_mode |
BAR_MODE |
sort |
SORT |
scalex |
SCALE |
scaley |
SCALE |
xticks_format |
VALUE_FORMAT, DATE_FORMAT |
yticks_format |
VALUE_FORMAT, DATE_FORMAT |