For AI agents: the complete documentation index is at llms.txt. Markdown versions are available by appending .md or sending Accept: text/markdown.
Reflex Logo
Docs Logo
Library

/

Graphing

/

Charts

/

Barchart

Bar Chart

A bar chart presents categorical data with rectangular bars with heights or lengths proportional to the values that they represent.

For a bar chart we must define an rx.recharts.bar() component for each set of values we wish to plot. Each rx.recharts.bar() component has a data_key which clearly states which variable in our data we are tracking. In this simple example we plot uv as a bar against the name column which we set as the data_key in rx.recharts.x_axis.

Simple Example

Multiple Bars

Multiple bars can be placed on the same bar_chart, using multiple rx.recharts.bar() components.

Ranged Charts

You can also assign a range in the bar by assigning the data_key in the rx.recharts.bar to a list with two elements, i.e. here a range of two temperatures for each date.

Stateful Charts

Here is an example of a bar graph with a State. Here we have defined a function randomize_data, which randomly changes the data for both graphs when the first defined bar is clicked on using on_click=BarState.randomize_data.

Expand

Example with Props

Here's an example demonstrates how to customize the appearance and layout of bars using the bar_category_gap, bar_gap, bar_size, and max_bar_size props. These props accept values in pixels to control the spacing and size of the bars.

Vertical Example

The layout prop allows you to set the orientation of the graph to be vertical or horizontal, it is set horizontally by default.

Include margins around your graph to ensure proper spacing and enhance readability. By default, provide margins on all sides of the chart to create a visually appealing and functional representation of your data.

To learn how to use the sync_id, stack_id,x_axis_id and y_axis_id props check out the of the area chart documentation, where these props are all described with examples.

API Reference

rx.recharts.BarChart

A Bar chart component in Recharts.

Props

PropTypeDescription
width
Union[int, str]

The width of chart container. String or Integer.

height
Union[int, str]

The height of chart container.

data
Sequence

The source data, in which each element is an object.

margin
Dict[str, Any]

The sizes of whitespace around the chart, i.e. {"top": 50, "right": 30, "left": 20, "bottom": 5}.

sync_id
str

If any two categorical charts(rx.line_chart, rx.area_chart, rx.bar_chart, rx.composed_chart) have the same sync_id, these two charts can sync the position GraphingTooltip, and the start_index, end_index of Brush.

sync_method
"index""value"

When sync_id is provided, allows customisation of how the charts will synchronize GraphingTooltips and brushes. Using 'index' (default setting), other charts will reuse current datum's index within the data array. In cases where data does not have the same length, this might yield unexpected results. In that case use 'value' which will try to match other charts values, or a fully custom function which will receive tick, data as argument and should return an index. 'index' | 'value' | function.

layout
"vertical""horizontal"

The layout of area in the chart. 'horizontal' | 'vertical'.

stack_offset
"expand""none""wiggle""silhouette"

The type of offset function used to generate the lower and upper values in the series array. The four types are built-in offsets in d3-shape.

bar_category_gap
Union[int, str]

The gap between two bar categories, which can be a percent value or a fixed value. Percentage | Number.

bar_gap
Union[int, str]

The gap between two bars in the same category, which can be a percent value or a fixed value. Percentage | Number.

bar_size
int

The width of all the bars in the chart. Number.

max_bar_size
int

The maximum width of all the bars in a horizontal BarChart, or maximum height in a vertical BarChart.

reverse_stack_order
bool

If false set, stacked items will be rendered left to right. If true set, stacked items will be rendered right to left. (Render direction affects SVG layering, not x position.).

Valid Children

XAxisYAxisReferenceAreaReferenceDotReferenceLineBrushCartesianGridLegendGraphingTooltipBarDefs

rx.recharts.Bar

A Bar component in Recharts.

Props

PropTypeDescription
layout
"vertical""horizontal"

The layout of bar in the chart, usually inherited from parent. 'horizontal' | 'vertical'.

data_key
Union[int, str]

The key of a group of data which should be unique in an area chart.

x_axis_id
Union[int, str]

The id of x-axis which is corresponding to the data.

y_axis_id
Union[int, str]

The id of y-axis which is corresponding to the data.

legend_type
"circle""cross""diamond""line""plainline""rect""square""star""triangle""wye""none"

The type of icon in legend. If set to 'none', no legend item will be rendered. 'line' | 'plainline' | 'square' | 'rect'| 'circle' | 'cross' | 'diamond' | 'star' | 'triangle' | 'wye' | 'none' optional.

label
Union[dict, bool]

If false set, labels will not be drawn. If true set, labels will be drawn which have the props calculated internally.

is_animation_active
bool

If set false, animation of bar will be disabled.

animation_begin
int

Specifies when the animation should begin, the unit of this option is ms.

animation_duration
int

Specifies the duration of animation, the unit of this option is ms.

animation_easing
"ease""ease-in""ease-out""ease-in-out""linear"

The type of easing function.

unit
Union[int, str]

The unit of data. This option will be used in tooltip.

name
Union[int, str]

The name of data. This option will be used in tooltip and legend to represent a bar. If no value was set to this option, the value of dataKey will be used alternatively.

stroke
Union[str, Color]

The color of the line stroke.

stroke_width
Union[str, int, float]

The width of the line stroke.

fill
Union[str, Color]

The width of the line stroke.

background
bool

If false set, background of bars will not be drawn. If true set, background of bars will be drawn which have the props calculated internally.

stack_id
str

The stack id of bar, when two bars have the same value axis and same stack_id, then the two bars are stacked in order.

min_point_size
int

The minimal height of a bar in a horizontal BarChart, or the minimal width of a bar in a vertical BarChart. By default, 0 values are not shown. To visualize a 0 (or close to zero) point, set the minimal point size to a pixel value like 3. In stacked bar charts, minPointSize might not be respected for tightly packed values. So we strongly recommend not using this prop in stacked BarCharts.

bar_size
int

Size of the bar (if one bar_size is set then a bar_size must be set for all bars).

max_bar_size
int

Max size of the bar.

radius
Union[int, Sequence]

If set a value, the option is the radius of all the rounded corners. If set a array, the option are in turn the radiuses of top-left corner, top-right corner, bottom-right corner, bottom-left corner.

Valid Children

CellLabelListErrorBar

Event Triggers

See the full list of default event triggers
TriggerDescription
on_animation_startThe customized event handler of animation start.
on_animation_endThe customized event handler of animation end.
Built with Reflex