SfCartesianChart class

Renders the Cartesian type charts.

Cartesian charts are generally charts with horizontal and vertical axes. SfCartesianChart provides options to customize chart types using the series property.

late TooltipBehavior _tooltipBehavior;

@override
void initState() {
  _tooltipBehavior = TooltipBehavior(enable: true);
  super.initState();
}

@override
Widget build(BuildContext context) {
  return Center(
      child: SfCartesianChart(
    title: ChartTitle(text: 'Flutter Chart'),
    legend: Legend(isVisible: true),
    series: getDefaultData(),
    tooltipBehavior: _tooltipBehavior,
  ));
}

static List<LineSeries<SalesData, num>> getDefaultData() {
  final bool isDataLabelVisible = true,
      isMarkerVisible = true,
      isTooltipVisible = true;
  double? lineWidth, markerWidth, markerHeight;
  final List<SalesData> chartData = <SalesData>[
    SalesData(DateTime(2005, 0, 1), 'India', 1.5, 21, 28, 680, 760),
    SalesData(DateTime(2006, 0, 1), 'China', 2.2, 24, 44, 550, 880),
    SalesData(DateTime(2007, 0, 1), 'USA', 3.32, 36, 48, 440, 788),
    SalesData(DateTime(2008, 0, 1), 'Japan', 4.56, 38, 50, 350, 560),
    SalesData(DateTime(2009, 0, 1), 'Russia', 5.87, 54, 66, 444, 566),
    SalesData(DateTime(2010, 0, 1), 'France', 6.8, 57, 78, 780, 650),
    SalesData(DateTime(2011, 0, 1), 'Germany', 8.5, 70, 84, 450, 800)
  ];
  return <LineSeries<SalesData, num>>[
    LineSeries<SalesData, num>(
        enableTooltip: true,
        dataSource: chartData,
        xValueMapper: (SalesData sales, _) => sales.y,
        yValueMapper: (SalesData sales, _) => sales.y4,
        width: lineWidth ?? 2,
        markerSettings: MarkerSettings(
            isVisible: isMarkerVisible,
            height: markerWidth ?? 4,
            width: markerHeight ?? 4,
            shape: DataMarkerType.circle,
            borderWidth: 3,
            borderColor: Colors.red),
        dataLabelSettings: DataLabelSettings(
            isVisible: isDataLabelVisible,
            labelAlignment: ChartDataLabelAlignment.auto)),
    LineSeries<SalesData, num>(
        enableTooltip: isTooltipVisible,
        dataSource: chartData,
        width: lineWidth ?? 2,
        xValueMapper: (SalesData sales, _) => sales.y,
        yValueMapper: (SalesData sales, _) => sales.y3,
        markerSettings: MarkerSettings(
            isVisible: isMarkerVisible,
            height: markerWidth ?? 4,
            width: markerHeight ?? 4,
            shape: DataMarkerType.circle,
            borderWidth: 3,
            borderColor: Colors.black),
        dataLabelSettings: DataLabelSettings(
            isVisible: isDataLabelVisible,
            labelAlignment: ChartDataLabelAlignment.auto))
  ];
}
Inheritance

Constructors

SfCartesianChart({Key? key, Color? backgroundColor, bool enableSideBySideSeriesPlacement = true, Color borderColor = Colors.transparent, double borderWidth = 0.0, Color? plotAreaBackgroundColor, Color? plotAreaBorderColor, double plotAreaBorderWidth = 0.7, ImageProvider<Object>? plotAreaBackgroundImage, ChartTooltipCallback? onTooltipRender, ChartActualRangeChangedCallback? onActualRangeChanged, ChartDataLabelRenderCallback? onDataLabelRender, ChartLegendRenderCallback? onLegendItemRender, ChartTrackballCallback? onTrackballPositionChanging, ChartCrosshairCallback? onCrosshairPositionChanging, ChartZoomingCallback? onZooming, ChartZoomingCallback? onZoomStart, ChartZoomingCallback? onZoomEnd, ChartZoomingCallback? onZoomReset, ChartAxisLabelTapCallback? onAxisLabelTapped, DataLabelTapCallback? onDataLabelTapped, ChartLegendTapCallback? onLegendTapped, ChartSelectionCallback? onSelectionChanged, ChartTouchInteractionCallback? onChartTouchInteractionUp, ChartTouchInteractionCallback? onChartTouchInteractionDown, ChartTouchInteractionCallback? onChartTouchInteractionMove, ChartMarkerRenderCallback? onMarkerRender, bool isTransposed = false, bool enableAxisAnimation = false, List<CartesianChartAnnotation>? annotations, LoadMoreViewBuilderCallback? loadMoreIndicatorBuilder, ChartPlotAreaSwipeCallback? onPlotAreaSwipe, List<Color> palette = const <Color>[Color.fromRGBO(75, 135, 185, 1), Color.fromRGBO(192, 108, 132, 1), Color.fromRGBO(246, 114, 128, 1), Color.fromRGBO(248, 177, 149, 1), Color.fromRGBO(116, 180, 155, 1), Color.fromRGBO(0, 168, 181, 1), Color.fromRGBO(73, 76, 162, 1), Color.fromRGBO(255, 205, 96, 1), Color.fromRGBO(255, 240, 219, 1), Color.fromRGBO(238, 238, 238, 1)], ChartAxis primaryXAxis = const NumericAxis(), ChartAxis primaryYAxis = const NumericAxis(), EdgeInsets margin = const EdgeInsets.all(10), TooltipBehavior? tooltipBehavior, ZoomPanBehavior? zoomPanBehavior, Legend legend = const Legend(), SelectionType selectionType = SelectionType.point, ActivationMode selectionGesture = ActivationMode.singleTap, bool enableMultiSelection = false, CrosshairBehavior? crosshairBehavior, TrackballBehavior? trackballBehavior, List<CartesianSeries> series = const <CartesianSeries>[], ChartTitle title = const ChartTitle(), List<ChartAxis> axes = const <ChartAxis>[], List<TechnicalIndicator> indicators = const <TechnicalIndicator>[]})
Creating an argument constructor of SfCartesianChart class.
const

Properties

annotations List<CartesianChartAnnotation>?
Customizes the annotations. Annotations are used to mark the specific area of interest in the plot area with texts, shapes, or images.
final
axes List<ChartAxis>
Customizes the additional axes in the chart.
final
backgroundColor Color?
Background color of the chart.
final
borderColor Color
Color of the chart border.
final
borderWidth double
Width of the chart border.
final
crosshairBehavior CrosshairBehavior?
Customizes the crosshair in chart.
final
enableAxisAnimation bool
Axis elements animation on visible range change.
final
enableMultiSelection bool
Enables or disables the multiple data points or series selection.
final
enableSideBySideSeriesPlacement bool
Enables or disables the placing of series side by side.
final
hashCode int
The hash code for this object.
no setterinherited
indicators List<TechnicalIndicator>
Technical indicators for charts.
final
isTransposed bool
By setting this, the orientation of x-axis is set to vertical and orientation of y-axis is set to horizontal.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
legend Legend
Customizes the legend in the chart.
final
loadMoreIndicatorBuilder LoadMoreViewBuilderCallback?
A builder that builds the widget (ex., loading indicator or load more button) to display at the top of the chart area when horizontal scrolling reaches the start or end of the chart.
final
margin EdgeInsets
Margin for chart.
final
onActualRangeChanged ChartActualRangeChangedCallback?
Occurs when the visible range of an axis is changed, i.e. value changes for minimum, maximum, and interval. Here, you can get the actual and visible range of an axis.
final
onAxisLabelTapped ChartAxisLabelTapCallback?
Occurs when tapping the axis label. Here, you can get the appropriate axis that is tapped and the axis label text.
final
onChartTouchInteractionDown ChartTouchInteractionCallback?
Occurs when touched on the chart area.
final
onChartTouchInteractionMove ChartTouchInteractionCallback?
Occurs when touched and moved on the chart area.
final
onChartTouchInteractionUp ChartTouchInteractionCallback?
Occurs when tapped on the chart area.
final
onCrosshairPositionChanging ChartCrosshairCallback?
Occurs when tapping the axis label. Here, you can get the appropriate axis that is tapped and the axis label text.
final
onDataLabelRender ChartDataLabelRenderCallback?
Occurs when tapping the axis label. Here, you can get the appropriate axis that is tapped and the axis label text.
final
onDataLabelTapped DataLabelTapCallback?
Called when the data label is tapped.
final
onLegendItemRender ChartLegendRenderCallback?
Occurs when the legend item is rendered. Here, you can get the legend’s text, shape, series index, and point index of circular series.
final
onLegendTapped ChartLegendTapCallback?
Occurs when the legend item is rendered. Here, you can get the legend’s text, shape, series index, and point index of circular series.
final
onMarkerRender ChartMarkerRenderCallback?
Occurs when the marker is rendered. Here, you can get the marker pointIndex shape, height and width of data markers.
final
onPlotAreaSwipe ChartPlotAreaSwipeCallback?
Called while swiping on the plot area.
final
onSelectionChanged ChartSelectionCallback?
Occurs while selection changes. Here, you can get the series, selected color, unselected color, selected border color, unselected border color, selected border width, unselected border width, series index, and point index.
final
onTooltipRender ChartTooltipCallback?
Occurs while tooltip is rendered. You can customize the position and header. Here, you can get the text, header, point index, series, x and y-positions.
final
onTrackballPositionChanging ChartTrackballCallback?
Occurs while the trackball position is changed. Here, you can customize the text of the trackball.
final
onZoomEnd ChartZoomingCallback?
Occurs when the zooming action is completed. Here, you can get the axis, current zoom factor, current zoom position, previous zoom factor, and previous zoom position.
final
onZooming ChartZoomingCallback?
Occurs when Zooming event is performed. Here, you can get the axis, current zoom factor, current zoom position, previous zoom factor, and previous zoom position.
final
onZoomReset ChartZoomingCallback?
Occurs when zoomed state is reset. Here, you can get the axis, current zoom factor, current zoom position, previous zoom factor, and previous zoom position.
final
onZoomStart ChartZoomingCallback?
Occurs when zooming action begins. You can customize the zoom factor and zoom position of an axis. Here, you can get the axis, current zoom factor, current zoom position, previous zoom factor, and previous zoom position.
final
palette List<Color>
Color palette for chart series. If the series color is not specified, then the series will be rendered with appropriate palette color. Ten colors are available by default.
final
plotAreaBackgroundColor Color?
Background color of the plot area.
final
plotAreaBackgroundImage ImageProvider<Object>?
Background image for chart.
final
plotAreaBorderColor Color?
Border color of the plot area.
final
plotAreaBorderWidth double
Border width of the plot area.
final
primaryXAxis ChartAxis
Customizes the primary x-axis in chart.
final
primaryYAxis ChartAxis
Customizes the primary y-axis in chart.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectionGesture ActivationMode
Gesture for activating the selection. Selection can be activated in tap, double tap, and long press.
final
selectionType SelectionType
Mode of selecting the data points or series.
final
series List<CartesianSeries>
Customizes the series in chart.
final
title ChartTitle
Customizes the chart title.
final
tooltipBehavior TooltipBehavior?
Customizes the tooltip in chart.
final
trackballBehavior TrackballBehavior?
Customizes the trackball in chart.
final
zoomPanBehavior ZoomPanBehavior?
Customizes the zooming and panning settings.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<StatefulWidget>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited