Skip to content

FunnelChart API

API reference docs for the React FunnelChart component. Learn about the props, CSS, and other APIs of this exported module.

Demos

Import

import { FunnelChart } from '@mui/x-charts-pro/FunnelChart';
// or
import { FunnelChart } from '@mui/x-charts-pro';

Learn about the difference by reading this guide on minimizing bundle size.

Props

NameTypeDefaultDescription
series*Array<object>-

The series to display in the funnel chart. An array of FunnelSeriesType objects.

axisHighlight{ x?: 'band'
| 'line'
| 'none', y?: 'band'
| 'line'
| 'none' }
-

The configuration of axes highlight. Default is set to 'band' in the bar direction. Depends on layout prop.

See highlighting docs for more details.

categoryAxis{ categories?: Array<string>, disableLine?: bool, disableTicks?: bool, id?: number
| string, position?: 'bottom'
| 'left'
| 'none'
| 'right'
| 'top', scaleType?: 'band'
| 'linear'
| 'log'
| 'point'
| 'pow'
| 'sqrt'
| 'time'
| 'utc', size?: number, tickLabelStyle?: object, tickSize?: number }
{ position: 'none' }

The configuration of the category axis.

colorsArray<string>
| func
rainbowSurgePalette

Color palette used to colorize multiple series.

disableAxisListenerboolfalse

If true, the charts will not listen to the mouse move event. It might break interactive features, but will improve performance.

heightnumber-

The height of the chart in px. If not defined, it takes the height of the parent element.

hideLegendboolfalse

If true, the legend is not rendered.

highlightedItem{ dataIndex?: number, seriesId: number
| string }
-

The highlighted item. Used when the highlight is controlled.

idstring-

This prop is used to help implement the accessibility logic. If you don't provide this prop. It falls back to a randomly generated id.

initialZoomArray<{ axisId: number
| string, end: number, start: number }>
-

The list of zoom data related to each axis. Used to initialize the zoom in a specific configuration without controlling it.

loadingboolfalse

If true, a loading overlay is displayed.

marginnumber
| { bottom?: number, left?: number, right?: number, top?: number }
-

The margin between the SVG and the drawing area. It's used for leaving some space for extra information such as the x- and y-axis or legend.
Accepts a number to be used on all sides or an object with the optional properties: top, bottom, left, and right.

onAxisClickfunc-

The function called for onClick events. The second argument contains information about all line/bar elements at the current mouse position.

Signature:function(event: MouseEvent, data: null | AxisData) => void
  • event The mouse event recorded on the <svg/> element.
  • data The data about the clicked axis and items associated with it.
onHighlightChangefunc-

The callback fired when the highlighted item changes.

Signature:function(highlightedItem: HighlightItemData | null) => void
  • highlightedItem The newly highlighted item.
onItemClickfunc-

Callback fired when a funnel item is clicked.

Signature:function(event: React.MouseEvent, funnelItemIdentifier: FunnelItemIdentifier) => void
  • event The event source of the callback.
  • funnelItemIdentifier The funnel item identifier.
skipAnimationbool-

If true, animations are skipped. If unset or false, the animations respects the user's prefers-reduced-motion setting.

slotPropsobject{}

The props used for each component slot.

slotsobject{}

Overridable component slots.

See Slots API below for more details.

widthnumber-

The width of the chart in px. If not defined, it takes the width of the parent element.

zoomDataArray<{ axisId: number
| string, end: number, start: number }>
-

The list of zoom data related to each axis.

The component cannot hold a ref.

Slots

Slot nameClass nameDefault componentDescription
axisLabelChartsTextCustom component for axis label.
axisLine'line'Custom component for the axis main line.
axisTick'line'Custom component for the axis tick.
axisTickLabelChartsTextCustom component for tick label.
funnelSection
legendChartsLegendCustom rendering of the legend.
loadingOverlayChartsLoadingOverlayOverlay component rendered when the chart is in a loading state.
noDataOverlayChartsNoDataOverlayOverlay component rendered when the chart has no data to display.
tooltipChartsTooltipRootCustom component for the tooltip popper.

Source code

If you did not find the information in this page, consider having a look at the implementation of the component for more detail.