Latest source merged from Syncfusion
This commit is contained in:
Родитель
ea13ed8b88
Коммит
7810c89f76
|
@ -8,25 +8,28 @@ documentation: ug
|
|||
---
|
||||
|
||||
# Right to Left (RTL) in Flutter Date Range Picker (SfDateRangePicker)
|
||||
`SfDateRangePicker` supports Right to left rendering and all the date picker elements rendering direction will be changed.
|
||||
|
||||
The `SfDateRangePicker` supports changing the layout direction of the widget in the right-to-left direction by using the `Directionality` widget `textDirection` property to rtl.
|
||||
## RTL rendering ways
|
||||
Right to left rendering can be switched in the following ways:
|
||||
|
||||
You can also change the right to left direction by specifying locale, that supports RTL language such as (Arabic ,Persian ,Hebrew, Pashto and Urdu) by specifying the `MaterialApp` properties and adding the `flutter_localizations` package to your application.
|
||||
### Wrapping the SfDateRangePicker with Directionality widget
|
||||
The `SfDateRangePicker` supports changing the layout direction of the widget in the right-to-left direction by using the `Directionality` widget and set the `textDirection` property as [TextDirection.rtl](https://api.flutter.dev/flutter/dart-ui/TextDirection-class.html).
|
||||
|
||||
{% tabs %}
|
||||
{% highlight Dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Right to Left'),
|
||||
),
|
||||
body: Directionality(
|
||||
textDirection: TextDirection.rtl,
|
||||
child: SfDateRangePicker(
|
||||
view: DateRangePickerView.month,
|
||||
),
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Right to Left'),
|
||||
),
|
||||
body: Directionality(
|
||||
textDirection: TextDirection.rtl,
|
||||
child: SfDateRangePicker(
|
||||
view: DateRangePickerView.month,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -35,3 +38,57 @@ Widget build(BuildContext context) {
|
|||
{% endtabs %}
|
||||
|
||||
![RTL Date Range Picker](images/rtl/right_to_left.png)
|
||||
|
||||
### Changing the locale to RTL languages
|
||||
To change the date range picker rendering direction from right to left, change the locale to any of the RTL languages such as Arabic, Persian, Hebrew, Pashto, and Urdu.
|
||||
|
||||
{% tabs %}
|
||||
{% highlight Dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
localizationsDelegates: [
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
supportedLocales: <Locale>[
|
||||
Locale('en'),
|
||||
Locale('ar'),
|
||||
// ... other locales the app supports
|
||||
],
|
||||
locale: Locale('ar'),
|
||||
home: Scaffold(
|
||||
body: SfDateRangePicker(
|
||||
//...
|
||||
),
|
||||
));
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
{% endtabs %}
|
||||
|
||||
## RTL supported date range picker elements
|
||||
Right to left rendering is supported for all the elements in the `SfDateRangePicker`.
|
||||
|
||||
{% tabs %}
|
||||
{% highlight Dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Right to Left'),
|
||||
),
|
||||
body: Directionality(
|
||||
textDirection: TextDirection.rtl,
|
||||
child: SfDateRangePicker(
|
||||
view: DateRangePickerView.month,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
{% endtabs %}
|
|
@ -10,6 +10,11 @@ documentation: ug
|
|||
# Getting started with Flutter Event Calendar (SfCalendar)
|
||||
This section explains the steps required to add the calendar widget and populate appointments to the calendar widget. This section covers only basic features needed to get started with Syncfusion calendar widget.
|
||||
|
||||
To get start quickly with our Flutter event calendar widget, you can check on this video.
|
||||
|
||||
<style>#flutterEventCalendarVideoTutorial{width : 90% !important; height: 300px !important }</style>
|
||||
<iframe id='flutterEventCalendarVideoTutorial' src='https://youtu.be/3OROjbAQS8Y'></iframe>
|
||||
|
||||
## Add Flutter calendar to an application
|
||||
Create a simple project using the instructions given in the [Getting Started with your first Flutter app](https://flutter.dev/docs/get-started/test-drive?tab=vscode#create-app) documentation.
|
||||
|
||||
|
|
|
@ -8,9 +8,13 @@ documentation: ug
|
|||
---
|
||||
|
||||
# Right to left (RTL) in Flutter Event Calendar (SfCalendar)
|
||||
`SfCalendar` supports changing the layout direction of the widget in the right-to-left direction by using the `Directionality` widget `textDirection` property to rtl.
|
||||
Event calendar supports Right to left rendering and all the calendar elements rendering direction will be changed.
|
||||
|
||||
You can also change the right to left direction by specifying locale, which support RTL language such as (Arabic ,Persian ,Hebrew, Pashto, Urdu) by specifying the `MaterialApp` properties and adding the `flutter_localizations` package to your application.
|
||||
## RTL rendering ways
|
||||
Right to left rendering can be switched in the following ways:
|
||||
|
||||
### Wrapping the SfCalendar with Directionality widget
|
||||
`SfCalendar` supports changing the layout direction of the widget in the right-to-left direction by using the `Directionality` widget and set the `textDirection` property as [TextDirection.rtl](https://api.flutter.dev/flutter/dart-ui/TextDirection-class.html).
|
||||
|
||||
{% tabs %}
|
||||
{% highlight Dart %}
|
||||
|
@ -33,3 +37,70 @@ Widget build(BuildContext context) {
|
|||
{% endhighlight %}
|
||||
{% endtabs %}
|
||||
|
||||
### Changing the locale to RTL languages
|
||||
To change the event calendar rendering direction from right to left, change the locale to any of the RTL languages such as Arabic, Persian, Hebrew, Pashto, and Urdu.
|
||||
|
||||
{% tabs %}
|
||||
{% highlight Dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
localizationsDelegates: [
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
supportedLocales: <Locale>[
|
||||
Locale('en'),
|
||||
Locale('ar'),
|
||||
// ... other locales the app supports
|
||||
],
|
||||
locale: Locale('ar'),
|
||||
home: Scaffold(
|
||||
body: SfCalendar(
|
||||
//...
|
||||
),
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
{% endtabs %}
|
||||
|
||||
|
||||
## RTL supported calendar element
|
||||
Right to left rendering is supported for all the elements in the `SfCalendar`.
|
||||
|
||||
|
||||
{% tabs %}
|
||||
{% highlight Dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text('Right to Left'),
|
||||
),
|
||||
body: Directionality(
|
||||
textDirection: TextDirection.rtl,
|
||||
child: SfCalendar(
|
||||
view: CalendarView.month,
|
||||
allowedViews: [
|
||||
CalendarView.day,
|
||||
CalendarView.week,
|
||||
CalendarView.workWeek,
|
||||
CalendarView.month,
|
||||
CalendarView.schedule,
|
||||
CalendarView.timelineDay,
|
||||
CalendarView.timelineWeek,
|
||||
CalendarView.timelineWorkWeek,
|
||||
CalendarView.timelineMonth
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
{% endtabs %}
|
||||
|
|
|
@ -0,0 +1,191 @@
|
|||
---
|
||||
layout: post
|
||||
title: Area Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Area Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Area Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render an area chart, create an instance of [`AreaSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/AreaSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The area chart shows the filled area to represent the data, but when there are more than a series, this may hide the other series. To get rid of this, increase or decrease the transparency of the series.
|
||||
|
||||
The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders area chart
|
||||
AreaSeries<SalesData, dateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Area chart](images/cartesian-chart-types/area.jpg)
|
||||
|
||||
### Border customization
|
||||
|
||||
The borders of the area chart can be customized using the [`borderDrawMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/AreaSeries/borderDrawMode.html) property. The default value of the [`borderDrawMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/AreaSeries/borderDrawMode.html) property is [`top`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BorderDrawMode-class.html). The other values are [`all`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BorderDrawMode-class.html) and [`excludeBottom`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BorderDrawMode-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
AreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
color: Colors.deepOrange[300],
|
||||
borderMode: AreaBorderMode.excludeBottom,
|
||||
borderColor: Colors.green,
|
||||
borderWidth: 2,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Area border](images/cartesian-chart-types/area_border.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the area series further.
|
||||
|
||||
## Area with gradients
|
||||
|
||||
The [`gradient`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/gradient.html) property is used to define the gradient colors. The colors from this property is used for series.
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<Color> color = <Color>[];
|
||||
color.add(Colors.blue[50]!);
|
||||
color.add(Colors.blue[200]!);
|
||||
color.add(Colors.blue);
|
||||
|
||||
final List<double> stops = <double>[];
|
||||
stops.add(0.0);
|
||||
stops.add(0.5);
|
||||
stops.add(1.0);
|
||||
|
||||
final LinearGradient gradientColors =
|
||||
LinearGradient(colors: color, stops: stops);
|
||||
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders area chart
|
||||
AreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales,
|
||||
gradient: gradientColors
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Area gradients](images/cartesian-chart-types/area_gradient.png)
|
||||
|
||||
## Area with empty points
|
||||
|
||||
Data points with a null value are considered empty points. Empty data points are ignored and are not plotted in the chart. By using [`emptyPointSettings`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/emptyPointSettings.html) property in series, you can decide the action taken for empty points. Available [`modes`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/EmptyPointMode-class.html) are [`gap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/EmptyPointMode-class.html), [`zero`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/EmptyPointMode-class.html), [`drop`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/EmptyPointMode-class.html) and [`average`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/EmptyPointMode-class.html). Default mode of the empty point is [`gap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/EmptyPointMode-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
AreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Area with empty points](images/cartesian-chart-types/area_emptypoints.png)
|
||||
|
||||
|
||||
|
||||
## Vertical area chart
|
||||
|
||||
The [`isTransposed`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/isTransposed.html) property of [`CartesianSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries-class.html) is used to transpose the horizontal and vertical axes, to view the data in a different perspective. Using this feature, you can render vertical area chart.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
isTransposed: true,
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
AreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Vertical area chart](images/cartesian-chart-types/vertical_area.png)
|
|
@ -0,0 +1,150 @@
|
|||
---
|
||||
layout: post
|
||||
title: Bar Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Bar Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Bar Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a bar chart, create an instance of [`BarSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BarSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
// Renders bar chart
|
||||
BarSeries<SalesData, double>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bar chart](images/cartesian-chart-types/bar.jpg)
|
||||
|
||||
## Bar width and spacing
|
||||
|
||||
The [`spacing`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BarSeries/spacing.html) property is used to change the spacing between two segments. The default value of spacing is 0, and the value ranges from 0 to 1. Here, 1 and 0 correspond to 100% and 0% of the available space, respectively.
|
||||
|
||||
The [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) property is used to change the width of the rectangle. The default value of the width is 0.7, and the value ranges from 0 to 1. Here, 1 and 0 correspond to 100% and 0% of the available width, respectively.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
BarSeries<SalesData, double>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales,
|
||||
width: 0.6, // Width of the bars
|
||||
spacing: 0.3 // Spacing between the bars
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bar width and spacing](images/cartesian-chart-types/bar_width_spacing.jpg)
|
||||
|
||||
## Rounded corners
|
||||
|
||||
The [`borderRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BarSeries/borderRadius.html) property is used to add the rounded corners to the rectangle.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
BarSeries<SalesData, double>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales,
|
||||
borderRadius: BorderRadius.all(Radius.circular(15))
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bar rounded corners](images/cartesian-chart-types/rounded_bar.jpg)
|
||||
|
||||
## Track customization
|
||||
|
||||
You can render the bar chart with track. Track is a rectangular bar rendered from the start to the end of the axis. Bar series will be rendered above the track. The [`isTrackVisible`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BarSeries/isTrackVisible.html) property is used to enable the track. The following properties can be used to customize the appearance:
|
||||
|
||||
* [`trackColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BarSeries/trackColor.html) - changes the color of the track.
|
||||
* [`trackBorderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BarSeries/trackBorderWidth.html) - changes the stroke width of the track.
|
||||
* [`trackBorderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BarSeries/trackBorderColor.html) - changes the stroke color of the track.
|
||||
* [`trackPadding`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BarSeries/trackPadding.html) - Adds padding to the track.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
BarSeries<SalesData, double>(
|
||||
dataSource: chartData,
|
||||
// Renders the track
|
||||
isTrackVisible: true,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bar track](images/cartesian-chart-types/track_bar.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the bar series further.
|
||||
|
||||
### See Also
|
||||
|
||||
*[Create vertical bar chart](https://www.syncfusion.com/kb/12348/how-to-create-vertical-bar-chart-in-flutter-using-cartesian-charts-widget-sfcartesianchart).
|
||||
|
||||
*[Create horizontal bar chart](https://www.syncfusion.com/kb/12347/how-to-create-horizontal-bar-chart-in-flutter-using-cartesian-charts-widget)
|
|
@ -0,0 +1,48 @@
|
|||
---
|
||||
layout: post
|
||||
title: Box and Whisker Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Box and Whisker Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Box and Whisker Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
The Box and Whisker charts can be used to visualize a group of numerical data through their quartiles. It is also referred as box plot. Box plots may also have lines extending vertically from the boxes (whiskers) indicating variability outside the upper and lower quartiles.
|
||||
|
||||
To render a Box and Whisker chart, create an instance of [`BoxAndWhiskerSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BoxAndWhiskerSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties to customize the appearance.
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the series.
|
||||
* [`BoxPlotMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BoxPlotMode-class.html) - used to change the box plot rendering mode. This property is applicable for
|
||||
`normal`, `exclusive`, and `inclusive` values.
|
||||
* [`showMean`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BoxAndWhiskerSeries/showMean.html) - indication for mean value in box plot. It is set to be true, a cross symbol will be displayed at the mean value, for each data point in box plot. Else, it will not be displayed.
|
||||
* [`spacing`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BoxAndWhiskerSeries/spacing.html) - spacing between the box plots.The value ranges from 0 to 1, where 1 represents 100% and 0 represents 0% of the available space.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries<SalesData, double>>[
|
||||
BoxAndWhiskerSeries<SalesData, double>(
|
||||
dataSource: data,
|
||||
boxPlotMode: BoxPlotMode.exclusive,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.number
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![box and whisker chart](images/cartesian-chart-types/box_and_whisker.png)
|
|
@ -0,0 +1,219 @@
|
|||
---
|
||||
layout: post
|
||||
title: Bubble Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Bubble Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Bubble Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a bubble chart, create an instance of [`BubbleSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BubbleSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html).
|
||||
|
||||
Bubble chart requires three fields (X, Y, and Size) to plot a point. Here, [`sizeValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/sizeValueMapper.html) is used to map the size of each bubble segment from data source.
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke width of the series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke color of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<ChartData> chartData = [
|
||||
ChartData(2010, 35, 0.32),
|
||||
ChartData(2011, 38, 0.21),
|
||||
ChartData(2012, 34, 0.38),
|
||||
ChartData(2013, 52, 0.29),
|
||||
ChartData(2014, 40, 0.34)
|
||||
];
|
||||
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders bubble chart
|
||||
BubbleSeries<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
sizeValueMapper: (ChartData sales, _) => sales.size,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.y, this.size);
|
||||
final DateTime x;
|
||||
final double y;
|
||||
final double size;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bubble chart](images/cartesian-chart-types/bubble.jpg)
|
||||
|
||||
## Change the min and max radius of bubble
|
||||
|
||||
The [`minimumRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BubbleSeries/minimumRadius.html) property is used to change the minimum size of the series and the [`maximumRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/BubbleSeries/maximumRadius.html) property is used to change the maximum size of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
BubbleSeries<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
sizeValueMapper: (ChartData sales, _) => sales.size,
|
||||
minimumRadius:9, // Minimum radius of bubble
|
||||
maximumRadius: 15, // Maximum radius of bubble
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bubble size](images/cartesian-chart-types/bubble_radius.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the bubble series further.
|
||||
|
||||
## Bubble with various color
|
||||
|
||||
Using the [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/pointColorMapper.html) and [`sizeValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/sizeValueMapper.html) properties in the Cartesian charts, the Bubble series with different colors and sizes can be rendered.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
BubbleSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
sizeValueMapper: (ChartData sales, _) => sales.size,
|
||||
pointColorMapper:(ChartData sales, _) => sales.pointColor,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bubble various color](images/cartesian-chart-types/bubble_variouscolors.png)
|
||||
|
||||
## Bubble with gradients
|
||||
|
||||
The [`gradient`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/gradient.html) property is used to define the gradient colors. The colors from this property is used for series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<Color> color = <Color>[];
|
||||
color.add(Colors.blue[50]!);
|
||||
color.add(Colors.blue[200]!);
|
||||
color.add(Colors.blue);
|
||||
|
||||
final List<double> stops = <double>[];
|
||||
stops.add(0.0);
|
||||
stops.add(0.5);
|
||||
stops.add(1.0);
|
||||
|
||||
final LinearGradient gradientColors =
|
||||
LinearGradient(colors: color, stops: stops);
|
||||
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <CartesianSeries>[
|
||||
BubbleSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y,
|
||||
sizeValueMapper:(ChartData sales, _) => sales.size,
|
||||
// Applies gradient color
|
||||
gradient: gradientColors
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bubble gradients](images/cartesian-chart-types/bubble_gradients.png)
|
||||
|
||||
## Bubble with multiple series
|
||||
|
||||
Using the [`datasource`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/dataSource.html) property in the Map charts, multiple series can be rendered in a bubble chart.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
BubbleSeries<ChartData, num>(
|
||||
dataSource: northAmerica,
|
||||
xValueMapper: (ChartData sales, _) => sales.xValue,
|
||||
yValueMapper: (ChartData sales, _) => sales.y,
|
||||
sizeValueMapper: (ChartData sales, _) => sales.size),
|
||||
BubbleSeries<ChartData, num>(
|
||||
dataSource: europe,
|
||||
xValueMapper: (ChartData sales, _) => sales.xValue,
|
||||
yValueMapper: (ChartData sales, _) => sales.y,
|
||||
sizeValueMapper:(ChartData sales, _) => sales.size),
|
||||
BubbleSeries<ChartData, num>(
|
||||
dataSource: asia,
|
||||
xValueMapper: (ChartData sales, _) => sales.xValue,
|
||||
yValueMapper: (ChartData sales, _) => sales.y,
|
||||
sizeValueMapper: (ChartData sales, _) => sales.size),
|
||||
BubbleSeries<ChartData, num>(
|
||||
dataSource: africa,
|
||||
xValueMapper: (ChartData sales, _) => sales.xValue,
|
||||
yValueMapper: (ChartData sales, _) => sales.y,
|
||||
sizeValueMapper: (ChartData sales, _) => sales.size),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Bubble nultiple series](images/cartesian-chart-types/bubble_with_multiple.png)
|
|
@ -0,0 +1,119 @@
|
|||
---
|
||||
layout: post
|
||||
title: Candle Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Candle Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Candle Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
Candle series is similar to HiLo Open Close series, used to represent the low, high, open and closing price over time.
|
||||
|
||||
To render a Candle chart, create an instance of [` CandleSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* [`showIndicationForSameValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries/showIndicationForSameValues.html)- used to show indication of the data point with a thin line when its high and low values are same and also when all the values of high, low, open and close are same for the data point. By default is set to be `false`.
|
||||
* [`enableSolidCandles`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries/enableSolidCandles.html)- used to enable/disable the solid candles. By default is set to be `false`. The fill color of the candle will be defined by its opening and closing values.
|
||||
* [`lowValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/lowValueMapper.html) - used to get the low values from the series.
|
||||
* [`highValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/highValueMapper.html) - used to get the high values from the series.
|
||||
* [`openValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries/openValueMapper.html) - used to get the open values from the series.
|
||||
* [`closeValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries/closeValueMapper.html) - used to get the close values from the series.
|
||||
* [`bearFillColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries/bearColor.html) - bearFillColor will be applied when the opening value is less than the closing value.
|
||||
* [`bullFillColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries/bullColor.html) - bullFillColor will be applied when the opening value is greater than closing value.
|
||||
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders CandleSeries
|
||||
CandleSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
lowValueMapper: (Sample sales, _) => sales.low,
|
||||
highValueMapper: (Sample sales, _) => sales.high,
|
||||
openValueMapper: (Sample sales, _) => sales.open,
|
||||
closeValueMapper: (Sample sales, _) => sales.close,
|
||||
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![candle chart](images/cartesian-chart-types/candle.png)
|
||||
|
||||
### See Also
|
||||
|
||||
* [Rendering flutter candle stick chart](https://www.syncfusion.com/kb/12288/how-to-render-flutter-candlestick-chart-using-the-charts-widget-sfcartesianchart).
|
||||
|
||||
## Indication for same values
|
||||
|
||||
In the Candle series, there is a feature for the datapoints indication when their high and low values are same or open and close values or high, low, open and close values are same for a datapoint. For using this indication feature, [`showIndicationForSameValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries/showIndicationForSameValues.html) property can be set to `true`.
|
||||
|
||||
The following are the types of indication when the combination of high, low, open and close values are same for a datapoint.
|
||||
|
||||
* In the Candle chart, if the open and close values are same then a horizontal line will be drawn at that value by default.
|
||||
* If the high and low values are same and with [`showIndicationForSameValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CandleSeries/showIndicationForSameValues.html) property set to true then, a thin vertical line is drawn and if API is set to false, the line will not be drawn.
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
CandleSeries<ChartData, double>(
|
||||
showIndicationForSameValues: true,
|
||||
dataSource: <ChartData>[
|
||||
ChartData( // Open and close values are same
|
||||
x: 5,
|
||||
open: 86.3593,
|
||||
high: 88.1435,
|
||||
low: 84.3914,
|
||||
close: 86.3593),
|
||||
ChartData( // High and low values are same
|
||||
x: 10,
|
||||
open: 85.4425,
|
||||
high: 86.4885,
|
||||
low: 86.4885,
|
||||
close: 87.001),
|
||||
ChartData( //High, low, open, and close values all are same
|
||||
x: 15,
|
||||
open: 86.4885,
|
||||
high: 86.4885,
|
||||
low: 86.4885,
|
||||
close: 86.4885),
|
||||
],
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
highValueMapper: (ChartData data, _) => data.high,
|
||||
lowValueMapper: (ChartData data, _) => data.low,
|
||||
openValueMapper: (ChartData data, _) => data.open,
|
||||
closeValueMapper: (ChartData data, _) => data.close)
|
||||
]
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Candle Indication](images/cartesian-chart-types/candle_indication.jpg)
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,198 @@
|
|||
---
|
||||
layout: post
|
||||
title: Column Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Column Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Column Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a column chart, create an instance of [`ColumnSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ColumnSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/XyDataSeries-class.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
// Renders column chart
|
||||
ColumnSeries<SalesData, double>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Column chart](images/cartesian-chart-types/column.jpg)
|
||||
|
||||
## Side-by-side series placement
|
||||
|
||||
By default, all the column series that have the same x and y-axes are placed side by side in a chart. If you want to place a series one over the other (overlapped), set the [`enableSideBySideSeriesPlacement`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/enableSideBySideSeriesPlacement.html) property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html) to false and configure the [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) property to differentiate the series. The following code snippet and screenshot illustrate the overlapped placement of column series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<SalesData> chartData = [
|
||||
SalesData(2010, 35, 23),
|
||||
SalesData(2011, 38, 49),
|
||||
SalesData(2012, 34, 12),
|
||||
SalesData(2013, 52, 33),
|
||||
SalesData(2014, 40, 30)
|
||||
];
|
||||
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
// Columns will be rendered back to back
|
||||
enableSideBySideSeriesPlacement: false,
|
||||
series: <ChartSeries>[
|
||||
ColumnSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
),
|
||||
ColumnSeries<SalesData, DateTime>(
|
||||
opacity: 0.9,
|
||||
width: 0.4,
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.loss
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Column side by side placement](images/cartesian-chart-types/sidebySidePlacement.jpg)
|
||||
|
||||
## Column width and spacing
|
||||
|
||||
The [`spacing`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ColumnSeries/spacing.html) property is used to change the spacing between two segments. The default value of spacing is 0, and the value ranges from 0 to 1. Here, 1 and 0 correspond to 100% and 0% of the available space, respectively.
|
||||
|
||||
The [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) property is used to change the width of the rectangle. The default value of the width is 0.7, and the value ranges from 0 to 1. Here, 1 and 0 correspond to 100% and 0% of the available width, respectively.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
ColumnSeries<SalesData, double>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales,
|
||||
width: 0.8, // Width of the columns
|
||||
spacing: 0.2 // Spacing between the columns
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Column width and spacing](images/cartesian-chart-types/column_width_spacing.jpg)
|
||||
|
||||
## Rounded corners
|
||||
|
||||
The [`borderRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ColumnSeries/borderRadius.html) property is used to add the rounded corners to the rectangle.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
ColumnSeries<SalesData, double>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales,
|
||||
// Sets the corner radius
|
||||
borderRadius: BorderRadius.all(Radius.circular(15))
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Rounded corners](images/cartesian-chart-types/rounded_column.jpg)
|
||||
|
||||
### See Also
|
||||
|
||||
* [Rendering each data points with different border radius in column charts](https://www.syncfusion.com/kb/12074/how-to-set-different-border-radius-for-each-rect-series-data-points-by-extending-the).
|
||||
|
||||
* [Adding rounded corners for the specific sides in column charts](https://www.syncfusion.com/kb/12059/how-to-add-rounded-corners-for-specific-sides-in-the-rect-series-types-sfcartesianchart)
|
||||
|
||||
## Track customization
|
||||
|
||||
Renders column with track. Track is a rectangular bar rendered from the start to the end of the axis. Column series will be rendered above the track. The [`isTrackVisible`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ColumnSeries/isTrackVisible.html) property is used to enable the track. The following properties can be used to customize the appearance:
|
||||
|
||||
* [`trackColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ColumnSeries/trackColor.html) - changes the color of the track.
|
||||
* [`trackBorderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ColumnSeries/trackBorderWidth.html) - changes the stroke width of the track.
|
||||
* [`trackBorderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ColumnSeries/trackBorderColor.html) - changes the stroke color of the track.
|
||||
* [`trackPadding`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ColumnSeries/trackPadding.html) - adds padding to the track.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
ColumnSeries<SalesData, double>(
|
||||
dataSource: chartData,
|
||||
// Renders the track
|
||||
isTrackVisible: true,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Track](images/cartesian-chart-types/track_column.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the column series further.
|
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
layout: post
|
||||
title: Fast line Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Fast line Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Fast line Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
[`FastLineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/FastLineSeries-class.html) is a line chart, but it loads faster than [`LineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/LineSeries-class.html). You can use this when there are large number of points to be loaded in a chart. To render a fast line chart, create an instance of [`FastLineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/FastLineSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html). The following properties can be used to customize the appearance of fast line segment:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the line.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the line.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders fast line chart
|
||||
FastLineSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Fast line chart](images/cartesian-chart-types/fastline.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the fast line series further.
|
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
layout: post
|
||||
title: HiLo Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about HiLo Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# HiLo Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
HiLo Series illustrates the price movements in stock using the high and low values.
|
||||
|
||||
To render a HiLo chart, create an instance of [`HiloSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* [`lowValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/lowValueMapper.html) - used to get the low values from the series.
|
||||
* [`highValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/highValueMapper.html) - used to get the high values from the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders bar chart
|
||||
HiloSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
lowValueMapper: (Sample sales, _) => sales.low,
|
||||
highValueMapper: (Sample sales, _) => sales.high
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![hiLo chart](images/cartesian-chart-types/hilo_chart.png)
|
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
layout: post
|
||||
title: Histogram Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Histogram Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Histogram Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
Histogram chart is a graphical representation that organizes a group of data points into user-specified ranges. It is similar in appearance to a bar chart. The histogram condenses a data series into an easily interpreted visual by taking many data points and grouping them into logical ranges.
|
||||
|
||||
To render a histogram chart, create an instance of [`HistogramSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HistogramSeries-class.html) and add to the series collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html).
|
||||
|
||||
You can customize intervals using the [`binInterval`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HistogramSeries/binInterval.html) property. Interval value by which the data points are grouped and rendered as bars, in histogram series.
|
||||
|
||||
For example, if the [`binInterval`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HistogramSeries/binInterval.html) is set to 20, the x-axis will split with 20 as the interval. The first bar in the histogram represents the count of values lying between 0 to 20 in the provided data and the second bar will represent 20 to 40.
|
||||
|
||||
If no value is specified for this property, then the interval will be calculated automatically based on the data points count and value.
|
||||
|
||||
You can collapse the normal distribution curve using the [`showNormalDistributionCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HistogramSeries/showNormalDistributionCurve.html) property. You can use the following properties to customize the appearance.
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* [`curveColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HistogramSeries/curveColor.html) - changes the color of the normal distribution curve.
|
||||
* [`curveWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HistogramSeries/curveWidth.html) - changes the width of the normal distribution curve.
|
||||
* [`curveDashArray`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HistogramSeries/curveDashArray.html) - renders the normal distribution curve with dashes.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
HistogramSeries<SalesDaa, num>(
|
||||
dataSource: chartData,
|
||||
yValueMapper: (SalesData sales, _) => sales.yValue,
|
||||
binInterval: 20,
|
||||
showNormalDistributionCurve: true,
|
||||
curveColor: const Color.fromRGBO(192, 108, 132, 1),
|
||||
borderWidth: 3
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![histogram chart](images/cartesian-chart-types/Histogram.png)
|
|
@ -0,0 +1,147 @@
|
|||
---
|
||||
layout: post
|
||||
title: Line Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Line Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Line Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a line chart, create an instance of [`LineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/LineSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the line.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the line.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<SalesData> chartData = [
|
||||
SalesData(2010, 35),
|
||||
SalesData(2011, 28),
|
||||
SalesData(2012, 34),
|
||||
SalesData(2013, 32),
|
||||
SalesData(2014, 40)
|
||||
];
|
||||
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders line chart
|
||||
LineSeries<SalesData, dateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class SalesData {
|
||||
SalesData(this.year, this.sales);
|
||||
final dateTime year;
|
||||
final double sales;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Line chart](images/cartesian-chart-types/line.jpg)
|
||||
|
||||
## Dashed line
|
||||
|
||||
The [`dashArray`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/dashArray.html) property of [`LineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/LineSeries-class.html) is used to render line series with dashes. Odd value is considered as rendering size and even value is considered as gap.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<SalesData> chartData = [
|
||||
SalesData("2010", 35),
|
||||
SalesData("2011", 28),
|
||||
SalesData('2012', 34),
|
||||
SalesData('2013', 32),
|
||||
SalesData('2014', 40)
|
||||
];
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
LineSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
// Dash values for line
|
||||
dashArray: <double>[5, 5],
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Dashed line chart](images/cartesian-chart-types/dashed_line.jpg)
|
||||
|
||||
### See Also
|
||||
|
||||
*[Applying dashed pattern for line chart](https://www.syncfusion.com/kb/12349/how-to-create-dash-pattern-line-chart-in-flutter-using-cartesian-charts-widget).
|
||||
|
||||
## Multi-colored line
|
||||
|
||||
To render a multi-colored line series, map the individual colors to the data using the [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/pointColorMapper.html) property.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
LineSeries<SalesData, String>(
|
||||
dataSource: [
|
||||
SalesData('Jan', 35, Colors.red),
|
||||
SalesData('Feb', 28, Colors.green),
|
||||
SalesData('Mar', 34, Colors.blue),
|
||||
SalesData('Apr', 32, Colors.pink),
|
||||
SalesData('May', 40, Colors.black)
|
||||
],
|
||||
// Bind the color for all the data points from the data source
|
||||
pointColorMapper:(SalesData sales, _) => sales.segmentColor,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class SalesData {
|
||||
SalesData(this.year, this.sales, this.segmentColor);
|
||||
final String year;
|
||||
final double sales;
|
||||
final Color segmentColor;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Multi-colored line](images/cartesian-chart-types/multiColored_line.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the line series further.
|
|
@ -0,0 +1,114 @@
|
|||
---
|
||||
layout: post
|
||||
title: Open High Low Close in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Open High Low Close Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Open High Low Close in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
OpenHighLowClose series is used to represent the low, high, open and closing values over time.
|
||||
|
||||
To render a OpenHighLowClose chart, create an instance of [` hiloOpenCloseSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloOpenCloseSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* [`showIndicationForSameValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloOpenCloseSeries/showIndicationForSameValues.html)- used to show indication of the data point with a thin line when its high and low values are same and also when all the values of high, low, open and close are same for the data point. By default is set to be `false`.
|
||||
* [`lowValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/lowValueMapper.html) - used to get the low values from the series.
|
||||
* [`highValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/highValueMapper.html) - used to get the high values from the series.
|
||||
* [`openValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloOpenCloseSeries/openValueMapper.html) - used to get the open values from the series.
|
||||
* [`closeValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloOpenCloseSeries/closeValueMapper.html) - used to get the close values from the series.
|
||||
* [`bearFillColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloOpenCloseSeries/bearColor.html) - bearFillColor will be applied when the opening value is less than the closing value.
|
||||
* [`bullFillColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloOpenCloseSeries/bullColor.html) - bullFillColor will be applied when the opening value is greater than closing value.
|
||||
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders hiloOpenCloseSeries
|
||||
hiloOpenCloseSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
lowValueMapper: (Sample sales, _) => sales.low,
|
||||
highValueMapper: (Sample sales, _) => sales.high,
|
||||
openValueMapper: (Sample sales, _) => sales.open,
|
||||
closeValueMapper: (Sample sales, _) => sales.close,
|
||||
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![hiLoopenclose chart](images/cartesian-chart-types/hilo_open_close.png)
|
||||
|
||||
## Indication for same values
|
||||
|
||||
In the OHLC series, there is a feature for the datapoints indication when their high and low values are same or open and close values or high, low, open and close values are same for a datapoint. For using this indication feature, [`showIndicationForSameValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloOpenCloseSeries/showIndicationForSameValues.html) property can be set to `true`.
|
||||
|
||||
The following are the types of indication when the combination of high, low, open and close values are same for a datapoint.
|
||||
|
||||
* In the OHLC chart, if the open and close values are same then a horizontal line will be drawn at that value by default.
|
||||
* If the high and low values are same and with [`showIndicationForSameValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/HiloOpenCloseSeries/showIndicationForSameValues.html) property set to true then, a thin vertical line is drawn and if API is set to false, the line will not be drawn.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries>[
|
||||
HiloOpenCloseSeries<ChartData, double>(
|
||||
showIndicationForSameValues: true,
|
||||
dataSource: <ChartData>[
|
||||
ChartData( // Open and close values are same
|
||||
x: 5,
|
||||
open: 85.3593,
|
||||
high: 88.1435,
|
||||
low: 84.3914,
|
||||
close: 85.3593),
|
||||
ChartData( // High and low values are same
|
||||
x: 10,
|
||||
open: 86.4425,
|
||||
high: 86.4885,
|
||||
low: 86.4885,
|
||||
close: 86.5443),
|
||||
ChartData( //High, low, open, and close values all are same
|
||||
x: 15,
|
||||
open: 86.4885,
|
||||
high: 86.4885,
|
||||
low: 86.4885,
|
||||
close: 86.4885),
|
||||
],
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
highValueMapper: (ChartData data, _) => data.high,
|
||||
lowValueMapper: (ChartData data, _) => data.low,
|
||||
openValueMapper: (ChartData data, _) => data.open,
|
||||
closeValueMapper: (ChartData data, _) => data.close)
|
||||
]
|
||||
),
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![OHLC Indication](images/cartesian-chart-types/hilo_open_close_indication.jpg)
|
|
@ -0,0 +1,85 @@
|
|||
---
|
||||
layout: post
|
||||
title: Range area Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Range area Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Range area Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a range area chart, create an instance of `RangeAreaSeries` and add to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html).
|
||||
|
||||
Since the [`RangeAreaSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RangeAreaSeries-class.html) requires two Y values for a point, your data should contain high and low values. High and low value specifies the maximum and minimum range of the point.
|
||||
|
||||
* [`highValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/highValueMapper.html) - field in the data source, which is considered as high value for the data points.
|
||||
* [`lowValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/lowValueMapper.html) - field in the data source, which is considered as low value for the data points.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
RangeAreaSeries<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
lowValueMapper: (ChartData sales, _) => sales.low,
|
||||
highValueMapper: (ChartData sales, _) => sales.high,
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.high, this.low);
|
||||
final DateTime x;
|
||||
final double high;
|
||||
final double low;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Range area chart](images/cartesian-chart-types/range_area.png)
|
||||
|
||||
### Border customization
|
||||
|
||||
The borders of the range area chart can be customized using the [`borderDrawMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RangeAreaSeries/borderDrawMode.html) property. The default value of the [`RangeAreaBorderMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RangeAreaBorderMode-class.html) property is `all` and the other value is `excludeSides`.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
RangeAreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
color: Color.fromRGB(224, 242, 241,1),
|
||||
borderDrawMode: RangeAreaBorderMode.excludeSides,
|
||||
borderColor: Colors.green,
|
||||
borderWidth: 2,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Range area border](images/cartesian-chart-types/range_area_border.png)
|
|
@ -0,0 +1,135 @@
|
|||
---
|
||||
layout: post
|
||||
title: Range column Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Range column Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Range column Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a range column chart, create an instance of [`RangeColumnSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RangeColumnSeries-class.html) and add to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html).
|
||||
|
||||
Since the [`RangeColumnSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RangeColumnSeries-class.html) requires two Y values for a point, your data should contain high and low values. High and low value specifies the maximum and minimum range of the point.
|
||||
|
||||
* [`highValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/highValueMapper.html) - field in the data source, which is considered as high value for the data points.
|
||||
* [`lowValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/lowValueMapper.html) - field in the data source, which is considered as low value for the data points.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
RangeColumnSeries<ChartData, String>(
|
||||
dataSource: <ChartData>[
|
||||
ChartData('Jan', 3, 9),
|
||||
ChartData('Feb', 4, 11),
|
||||
ChartData('Mar', 6, 13),
|
||||
ChartData('Apr', 9, 17),
|
||||
ChartData('May', 12, 20),
|
||||
],
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
lowValueMapper: (ChartData sales, _) => sales.low,
|
||||
highValueMapper: (ChartData sales, _) => sales.high,
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.high, this.low);
|
||||
final String x;
|
||||
final double high;
|
||||
final double low;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Range column chart](images/cartesian-chart-types/range_column.jpg)
|
||||
|
||||
## Data label
|
||||
|
||||
In the range column chart when data label is enabled, by default there will be two values displayed namely, high and low, but in the other types of charts, only y value will be displayed.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
RangeColumnSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
lowValueMapper: (ChartData sales, _) => sales.low,
|
||||
highValueMapper: (ChartData sales, _) => sales.high,
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
labelAlignment: ChartDataLabelAlignment.top
|
||||
),
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Range column datalabel](images/cartesian-chart-types/range_column_datalabel.jpg)
|
||||
|
||||
## Transposed range column
|
||||
|
||||
The [`isTransposed`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/isTransposed.html) property of [`CartesianSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries-class.html) is used to transpose the horizontal and vertical axes, to view the data in a different perspective. Using this feature, you can render range column chart.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
isTransposed: true,
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
RangeColumnSeries<ChartData, String>(
|
||||
dataSource: <ChartData>[
|
||||
ChartData('Jan', 3, 9),
|
||||
ChartData('Feb', 4, 11),
|
||||
ChartData('Mar', 6, 13),
|
||||
ChartData('Apr', 9, 17),
|
||||
ChartData('May', 12, 20),
|
||||
],
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
lowValueMapper: (ChartData sales, _) => sales.low,
|
||||
highValueMapper: (ChartData sales, _) => sales.high,
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.high, this.low);
|
||||
final String x;
|
||||
final double high;
|
||||
final double low;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
|
@ -0,0 +1,84 @@
|
|||
---
|
||||
layout: post
|
||||
title: Scatter Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Scatter Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Scatter Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a scatter chart, create an instance of [`ScatterSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ScatterSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html). The following properties can be used to customize the scatter segment appearance.
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders scatter chart
|
||||
ScatterSeries<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Scatter chart](images/cartesian-chart-types/scatter.jpg)
|
||||
|
||||
### Change shape and size of the scatter
|
||||
|
||||
The [`shape`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/MarkerSettings/shape.html) property is used to change the rendering shape of scatter series. The available shapes are [`circle`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html), [`rectangle`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html), [`pentagon`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html), [`verticalLine`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html), [`horizontalLine`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html), [`diamond`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html), [`triangle`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html), [`image`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html), and [`invertedTriangle`](https://pub.dev/documentation/syncfusion_flutter_core/latest/core/DataMarkerType-class.html). If [`image`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/MarkerSettings/image.html) shape is specified, then you can assign the image using the [`image`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/MarkerSettings/image.html) property.
|
||||
|
||||
The [`height`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/MarkerSettings/height.html) and [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/MarkerSettings/width.html) properties of [`markerSettings`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/markerSettings.html) can be used to change the height and width of the scatter series, respectively.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
ScatterSeries<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y,
|
||||
markerSettings: MarkerSettings(
|
||||
height: 15,
|
||||
width: 15,
|
||||
// Scatter will render in diamond shape
|
||||
shape: DataMarkerType.diamond
|
||||
)
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Scatter shape](images/cartesian-chart-types/scatter_shape.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the scatter series further.
|
|
@ -0,0 +1,150 @@
|
|||
---
|
||||
layout: post
|
||||
title: Spline Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Spline Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Spline Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a spline chart, create an instance of [`SplineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance of spline segment:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders spline chart
|
||||
SplineSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Spline border](images/cartesian-chart-types/spline.jpg)
|
||||
|
||||
## Dashed spline
|
||||
|
||||
The [`dashArray`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/dashArray.html) property of the [`SplineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/SplineSeries.html) is used to render spline series with dashes. Odd value is considered as rendering size and even value is considered as gap.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
SplineSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
// Dash values for spline
|
||||
dashArray: <double>[5, 5],
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Dashed spline chart](images/cartesian-chart-types/dashed_spline.jpg)
|
||||
|
||||
### Spline rendering types
|
||||
|
||||
The [`splineType`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/splineType.html) allows you to change the spline curve in series. The following types can be used in [`SplineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/SplineSeries.html):
|
||||
|
||||
* natural
|
||||
* monotonic
|
||||
* cardinal
|
||||
* clamped
|
||||
|
||||
By default, the value of [`splineType`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/splineType.html) is [`natural`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineType-class.html).
|
||||
|
||||
The following code sample demonstrates how to set the [`splineType`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/splineType.html) value to [`cardinal`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineType-class.html). When you set the cardinal type, you can specify the desired line tension of the [`cardinal`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineType-class.html) spline using the [`cardinalSplineTension`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/cardinalSplineTension.html) property. The value of this property ranges from 0 to 1.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
SplineSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
// Type of spline
|
||||
splineType: SplineType.cardinal,
|
||||
cardinalSplineTension: 0.9,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Spline type](images/cartesian-chart-types/cardinal_spline.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the spline series further.
|
||||
|
||||
## Vertical spline chart
|
||||
|
||||
The [`isTransposed`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/isTransposed.html) property of [`CartesianSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries-class.html) is used to transpose the horizontal and vertical axes, to view the data in a different perspective. Using this feature, you can render vertical Spline chart.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
isTransposed: true,
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
SplineSeries<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Vertical spline chart](images/cartesian-chart-types/inversed-spline.png)
|
|
@ -0,0 +1,119 @@
|
|||
---
|
||||
layout: post
|
||||
title: Spline area Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Spline area Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Spline area Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a spline area chart, create an instance of [`SplineAreaSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineAreaSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance of spline area chart:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
SplineAreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
),
|
||||
SplineAreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData1,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Spline area chart](images/cartesian-chart-types/spline_area.png)
|
||||
|
||||
## Dashed spline area
|
||||
|
||||
The [`dashArray`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/dashArray.html) property of the [`SplineAreaSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineAreaSeries-class.html) is used to render spline area series with dashes. Odd value is considered as rendering size and even value is considered as gap.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
SplineAreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
dashArray: <double>[5, 5],
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Dashed spline area chart](images/cartesian-chart-types/spline_area_dashed.png)
|
||||
|
||||
### Spline area rendering types
|
||||
|
||||
The `splineType` allows you to change the spline area curve in series. The following types can be used in `SplineAreaSeries`:
|
||||
|
||||
* natural
|
||||
* monotonic
|
||||
* cardinal
|
||||
* clamped
|
||||
|
||||
By default, the value of `splineType` is `natural`.
|
||||
|
||||
The following code sample demonstrates how to set the `splineType` value to `cardinal`. When you set the cardinal type, you can specify the desired line tension of the `cardinal` spline using the `cardinalSplineTension` property. The value of this property ranges from 0 to 1.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
SplineAreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
splineType: SplineType.cardinal,
|
||||
cardinalSplineTension: 0.9,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Spline area type](images/cartesian-chart-types/spline_area_types.png)
|
|
@ -0,0 +1,115 @@
|
|||
---
|
||||
layout: post
|
||||
title: Spline range area in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Spline range area Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Spline range area Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a spline range area chart, create an instance of the [`SplineRangeAreaSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineRangeAreaSeries-class.html), and add to the series collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html).
|
||||
|
||||
|
||||
`SplineRangeAreaSeries` requires two Y values for a point, data should contain high and low values. The high and low values specify the maximum and minimum ranges of a point.
|
||||
|
||||
* [`highValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/highValueMapper.html) - field in the data source, which is considered as high value for the data points.
|
||||
* [`lowValueMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/lowValueMapper.html) - field in the data source, which is considered as low value for the data points.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <CartesianSeries<SalesData, num>>[
|
||||
SplineRangeAreaSeries<SalesData, num>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.xValue,
|
||||
lowValueMapper: (SalesData sales, _) =>
|
||||
sales.lowValue,
|
||||
highValueMapper: (SalesData sales, _) =>
|
||||
sales.highValue,),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![splinerangearea](images/cartesian-chart-types/splinerangearea.png)
|
||||
|
||||
### Spline rendering types
|
||||
|
||||
The [`splineType`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/splineType.html) allows you to change the spline curve in series. The following types can be used in [`SplineRangeAreaSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineRangeAreaSeries-class.html).
|
||||
|
||||
* natural
|
||||
* monotonic
|
||||
* cardinal
|
||||
* clamped
|
||||
|
||||
By default, the value of [`splineType`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/splineType.html) is [`natural`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineType-class.html).
|
||||
|
||||
The following code sample demonstrates how to set the [`splineType`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/splineType.html) value to [`cardinal`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineType-class.html). When you set the cardinal type, you can specify the desired line tension of the [`cardinal`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineType-class.html) spline using the [`cardinalSplineTension`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineSeries/cardinalSplineTension.html) property. The value of this property ranges from 0 to 1.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <CartesianSeries<SalesData, num>>[
|
||||
SplineRangeAreaSeries<SalesData, num>(
|
||||
dataSource: chartData,
|
||||
splineType: SplineType.cardinal,
|
||||
cardinalSplineTension: 0.8,
|
||||
xValueMapper: (SalesData sales, _) => sales.xValue,
|
||||
lowValueMapper: (SalesData sales, _) => sales.lowValue,
|
||||
highValueMapper: (SalesData sales, _) => sales.highValue
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![splinerangearea](images/cartesian-chart-types/splinerangeareatype.png)
|
||||
|
||||
## Border customization
|
||||
|
||||
The borders of the spline range area chart can be customized using the [`borderDrawMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineRangeAreaSeries/borderDrawMode.html) property. The default value of the [`borderDrawMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SplineRangeAreaSeries/borderDrawMode.html) property is `all` and the other value is `excludeSides`.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <CartesianSeries<SalesData, num>>[
|
||||
SplineRangeAreaSeries<SalesData, num>(
|
||||
borderDrawMode: RangeAreaBorderMode.all,
|
||||
borderWidth:2,
|
||||
borderColor: Colors.red
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![splinerangearea_bordermode](images/cartesian-chart-types/splinerangearea_bordermode.png)
|
|
@ -0,0 +1,167 @@
|
|||
---
|
||||
layout: post
|
||||
title: Stacked area Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Stacked area Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Stacked area Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a stacked area chart, create an instance of [`StackedAreaSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedAreaSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html). The following properties can be used to customize the appearance of stacked line series:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the line.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked area](images/cartesian-chart-types/stacked_area.jpg)
|
||||
|
||||
## Grouping series
|
||||
|
||||
You can group and stack the similar stacked series types using the [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedAreaSeries/groupName.html) property of stacked series. The stacked series that contains the same [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedAreaSeries/groupName.html) will be stacked in a single group.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked area grouping](images/cartesian-chart-types/stacked_area_grouping.jpg)
|
||||
|
||||
## Display cumulative values
|
||||
|
||||
You can show the cumulative data label values using the [`showCumulativeValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/showCumulativeValues.html) property. If the series are grouped using [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedAreaSeries/groupName.html), then cumulative values will be shown based on grouping.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
showCumulativeValues: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
showCumulativeValues: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedAreaSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
showCumulativeValues: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked area cumulative](images/cartesian-chart-types/stacked_area_cumulative.jpg)
|
|
@ -0,0 +1,60 @@
|
|||
---
|
||||
layout: post
|
||||
title: 100% Stacked area in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about 100% Stacked area Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
|
||||
# 100% Stacked area Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a 100% stacked area chart, create an instance of `StackingArea100Series` and add to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html). You can use the following properties to customize the 100% stacked area appearance.
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* `borderDrawMode` - specifies the type of the border mode and it defaults to `top`.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedArea100Series<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.year,
|
||||
yValueMapper: (ChartData sales, _) => sales.sales1
|
||||
),
|
||||
StackedArea100Series<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.year,
|
||||
yValueMapper: (ChartData sales, _) => sales.sales2
|
||||
),
|
||||
StackedArea100Series<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.year,
|
||||
yValueMapper: (ChartData sales, _) => sales.sales3
|
||||
),
|
||||
StackedArea100Series<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.year,
|
||||
yValueMapper: (ChartData sales, _) => sales.sales4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked 100Area chart](images/cartesian-chart-types/stacked_area_100.png)
|
|
@ -0,0 +1,160 @@
|
|||
---
|
||||
layout: post
|
||||
title: Stacked bar Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Stacked bar Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Stacked bar Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a stacked bar chart, create an instance of [`StackedBarSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedBarSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html). The following properties can be used to customize the appearance of stacked line series:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the line.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked bar](images/cartesian-chart-types/stacked_bar.jpg)
|
||||
|
||||
## Grouping series
|
||||
|
||||
You can group and stack the similar stacked series types using the [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedBarSeries/groupName.html) property of stacked series. The stacked series that contains the same [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedBarSeries/groupName.html) will be stacked in a single group.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedBarSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked bar grouping](images/cartesian-chart-types/stacked_bar_grouping.jpg)
|
||||
|
||||
## Display cumulative values
|
||||
|
||||
You can show the cumulative data label values using the [`showCumulativeValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/showCumulativeValues.html) property. If the series are grouped using [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedBarSeries/groupName.html), then cumulative values will be shown based on grouping.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedBarSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
StackedBarSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked bar cumulative](images/cartesian-chart-types/stacked_bar_cumulative.jpg)
|
|
@ -0,0 +1,100 @@
|
|||
---
|
||||
layout: post
|
||||
title: 100% Stacked bar in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about 100% Stacked bar Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# 100% Stacked bar Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a 100% stacked bar chart, create an instance of [`StackedBar100Series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedBar100Series-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* [`borderRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedBar100Series/borderRadius.html) - used to add the rounded corners to the rectangle.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedBar100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
),
|
||||
StackedBar100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales2
|
||||
),
|
||||
StackedBar100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales3
|
||||
),
|
||||
StackedBar100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked 100 bar chart](images/cartesian-chart-types/stacked100_bar.png)
|
||||
|
||||
## Bar width and spacing
|
||||
|
||||
The [`spacing`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedBar100Series/spacing.html) property is used to change the spacing between two segments. The default value of spacing is 0, and the value ranges from 0 to 1. Here, 1 and 0 correspond to 100% and 0% of the available space, respectively.
|
||||
|
||||
The [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) property is used to change the width of the rectangle. The default value of the width is 0.7, and the value ranges from 0 to 1. Here, 1 and 0 correspond to 100% and 0% of the available width, respectively.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedBar100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales,
|
||||
width: 0.8,
|
||||
spacing: 0.2
|
||||
),
|
||||
StackedBar100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales2,
|
||||
width: 0.8,
|
||||
spacing: 0.2
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked 100 bar width and spacing](images/cartesian-chart-types/stacked_bar_100_sizing.png)
|
|
@ -0,0 +1,161 @@
|
|||
---
|
||||
layout: post
|
||||
title: Stacked column Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Stacked column Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Stacked column Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a stacked column chart, create an instance of [`StackedColumnSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedColumnSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html). The following properties can be used to customize the appearance of stacked line series:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the line.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedColumnSeries<ChartData,String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked column](images/cartesian-chart-types/stacked_column.jpg)
|
||||
|
||||
## Grouping series
|
||||
|
||||
You can group and stack the similar stacked series types using the [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedColumnSeries/groupName.html) property of stacked series. The stacked series that contains the same [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedColumnSeries/groupName.html) will be stacked in a single group.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked column grouping](images/cartesian-chart-types/stacked_column_grouping.jpg)
|
||||
|
||||
## Display cumulative values
|
||||
|
||||
You can show the cumulative data label values using the [`showCumulativeValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/showCumulativeValues.html) property. If the series are grouped using [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedColumnSeries/groupName.html), then cumulative values will be shown based on grouping.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
StackedColumnSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataLabelSettings: DataLabelSettings(isVisible:true, showCumulativeValues: true),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked column cumulative](images/cartesian-chart-types/stacked_column_cumulative.jpg)
|
|
@ -0,0 +1,100 @@
|
|||
---
|
||||
layout: post
|
||||
title: 100% Stacked column in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about 100% Stacked Column Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# 100% Stacked column in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a 100% stacked column chart, create an instance of [`StackedColumn100Series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedColumnSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/XyDataSeries-class.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* [`borderRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedColumnSeries/borderRadius.html) - used to add the rounded corners to the rectangle.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedColumn100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
),
|
||||
StackedColumn100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales2
|
||||
),
|
||||
StackedColumn100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales3
|
||||
),
|
||||
StackedColumn100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked 100 column chart](images/cartesian-chart-types/stacked_column_100.png)
|
||||
|
||||
## Column width and spacing
|
||||
|
||||
The `spacing` property is used to change the spacing between two segments. The default value of spacing is 0, and the value ranges from 0 to 1. Here, 1 and 0 correspond to 100% and 0% of the available space, respectively.
|
||||
|
||||
The `width` property is used to change the width of the rectangle. The default value of the width is 0.7, and the value ranges from 0 to 1. Here, 1 and 0 correspond to 100% and 0% of the available width, respectively.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedColumn100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales,
|
||||
width: 0.8, // Width of the columns
|
||||
spacing: 0.2 // Spacing between the columns
|
||||
),
|
||||
StackedColumn100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales2,
|
||||
width: 0.8, // Width of the columns
|
||||
spacing: 0.2 // Spacing between the columns
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked 100 column width and spacing](images/cartesian-chart-types/stacked_column_100_size.png)
|
|
@ -0,0 +1,171 @@
|
|||
---
|
||||
layout: post
|
||||
title: Stacked line Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Stacked line Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Stacked line Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a stacked line chart, create an instance of [`StackedLineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedLineSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html). The following properties can be used to customize the appearance of stacked line series:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the line.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the line.
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedLineSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedLineSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedLineSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
StackedLineSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked line chart](images/cartesian-chart-types/stacked_line.jpg)
|
||||
|
||||
## Grouping series
|
||||
|
||||
You can group and stack the similar stacked series types using the [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedLineSeries/groupName.html) property of stacked series. The stacked series that contains the same [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedLineSeries/groupName.html) will be stacked in a single group.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedLineSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedLineSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedLineSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked line grouping](images/cartesian-chart-types/stacked_line_grouping.jpg)
|
||||
|
||||
## Display cumulative values
|
||||
|
||||
You can show the cumulative data label values using the [`showCumulativeValues`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/showCumulativeValues.html) property. If the series are grouped using [`groupName`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedLineSeries/groupName.html), then cumulative values will be shown based on grouping.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedLineSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
showCumulativeValues: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y1
|
||||
),
|
||||
StackedLineSeries<ChartData, String>(
|
||||
groupName: 'Group B',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
showCumulativeValues: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y2
|
||||
),
|
||||
StackedLineSeries<ChartData, String>(
|
||||
groupName: 'Group A',
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
isVisible: true,
|
||||
showCumulativeValues: true,
|
||||
useSeriesColor: true
|
||||
),
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y3
|
||||
),
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked line cumulative](images/cartesian-chart-types/stacked_line_cumulative.jpg)
|
|
@ -0,0 +1,106 @@
|
|||
---
|
||||
layout: post
|
||||
title: 100% Stacked line in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about 100% Stacked line Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# 100% Stacked line Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a 100% stacked line chart, create an instance of [`StackedLine100Series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StackedLine100Series-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the line.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the line.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedLine100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
),
|
||||
StackedLine100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales2
|
||||
),
|
||||
StackedLine100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales3
|
||||
),
|
||||
StackedLine100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Stacked 100 line chart](images/cartesian-chart-types/stacked_line_100.png)
|
||||
|
||||
## Dashed line
|
||||
|
||||
The `dashArray` property of `StackedLine100Series` is used to render line series with dashes. Odd value is considered as rendering size and even value is considered as gap.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: CategoryAxis(),
|
||||
series: <ChartSeries>[
|
||||
StackedLine100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
dashArray: <double>[5,5],
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
),
|
||||
StackedLine100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
dashArray: <double>[5,5],
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales2
|
||||
),
|
||||
StackedLine100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
dashArray: <double>[5,5],
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales3
|
||||
),
|
||||
StackedLine100Series<SalesData, String>(
|
||||
dataSource: chartData,
|
||||
dashArray: <double>[5,5],
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales4
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Dashed line chart](images/cartesian-chart-types/stacked_line_100_dashes.png)
|
|
@ -0,0 +1,78 @@
|
|||
---
|
||||
layout: post
|
||||
title: Step area Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Step area Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Step area Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a spline area chart, create an instance of `StepAreaSeries`, and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties can be used to customize the appearance of spline area chart.
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the series.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the series.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
StepAreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
),
|
||||
StepAreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData1,
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Step area chart](images/cartesian-chart-types/step_area.png)
|
||||
|
||||
## Dashed step area
|
||||
|
||||
The [`dashArray`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/dashArray.html) property of the [`StepAreaSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StepAreaSeries-class.html) is used to render spline area series with dashes. Odd value is considered as rendering size and even value is considered as gap.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
StepAreaSeries<SalesData, DateTime>(
|
||||
dataSource: chartData,
|
||||
dashArray: <double>[5, 5],
|
||||
xValueMapper: (SalesData sales, _) => sales.year,
|
||||
yValueMapper: (SalesData sales, _) => sales.sales
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Dashed step area chart](images/cartesian-chart-types/step_area_dashed.png)
|
|
@ -0,0 +1,77 @@
|
|||
---
|
||||
layout: post
|
||||
title: Step line Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Step line Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Step line Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
To render a step line chart, create an instance of [`StepLineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StepLineSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html) collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart-class.html). The following properties can be used to customize the appearance of spline segment:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/color.html) - changes the color of the line.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/width.html) - changes the stroke width of the line.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
// Renders step line chart
|
||||
StepLineSeries<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Step line chart](images/cartesian-chart-types/stepline.jpg)
|
||||
|
||||
## Dashed step line
|
||||
|
||||
The [`dashArray`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CartesianSeries/dashArray.html) property of the [`StepLineSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/StepLineSeries-class.html) is used to render step line series with dashes. Odd value is considered as rendering size and even value is considered as gap.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
primaryXAxis: DateTimeAxis(),
|
||||
series: <ChartSeries>[
|
||||
StepLineSeries<ChartData, DateTime>(
|
||||
dataSource: chartData,
|
||||
// Dashes for step line
|
||||
dashArray: <double>[5, 5],
|
||||
xValueMapper: (ChartData sales, _) => sales.x,
|
||||
yValueMapper: (ChartData sales, _) => sales.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Step line chart](images/cartesian-chart-types/dashed_stepline.jpg)
|
||||
|
||||
Also refer, [color palette](./series-customization#color-palette), [color mapping](./series-customization#color-mapping-for-data-points), [animation](./series-customization#animation), [gradient](./series-customization#gradient-fill) and [empty points](./series-customization#empty-points) for customizing the step line series further.
|
|
@ -0,0 +1,66 @@
|
|||
---
|
||||
layout: post
|
||||
title: Waterfall Chart in Flutter Cartesian Charts widget | Syncfusion
|
||||
description: Learn here all about Waterfall Chart of Syncfusion Flutter Cartesian Charts (SfCartesianChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Waterfall Chart in Flutter Cartesian Charts (SfCartesianChart)
|
||||
|
||||
The waterfall chart explains gradual changes in the quantitative value of an entity that is subject to changes by increments or decrements. Using the waterfall chart, you can quickly illustrate changes in revenues.
|
||||
|
||||
To render a waterfall chart, create an instance of [`WaterfallSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/WaterfallSeries-class.html) and add to the[`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/series.html)collection property of [`SfCartesianChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCartesianChart/SfCartesianChart.html). The following properties to customize the appearance.
|
||||
|
||||
* [`negativePointsColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/WaterfallSeries/negativePointsColor.html) - changes the color of the negative data points in the series. If no color is specified, then the negative data points will be rendered with the series default color.
|
||||
* [`intermediateSumColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/WaterfallSeries/intermediateSumColor.html) - changes the Color of the intermediate sum points in the series. If no color is specified, then the intermediate sum points will be rendered with the series default color.
|
||||
* [`totalSumColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/WaterfallSeries/totalSumColor.html) - changes the color of the total sum points in the series. If no color is specified, then the total sum points will be rendered with the series default color.
|
||||
* [`connectorLineSettings`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/WaterfallSeries/connectorLineSettings.html) - used to customize the waterfall chart connector line. Data points in waterfall chart are connected using the connector line. Provides the options to change the [`width`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ConnectorLineSettings/width.html), [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ConnectorLineSettings/color.html) and [`dashArray`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/WaterfallConnectorLineSettings/dashArray.html) of the connector line to customize the appearance.
|
||||
* [`spacing`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/WaterfallSeries/spacing.html) - used to provide spacing between the data points in waterfall chart. The value ranges from 0 to 1, where 1 represents 100% and 0 represents 0% of the available space.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCartesianChart(
|
||||
series: <ChartSeries<SalesData, double>>[
|
||||
WaterfallSeries<SalesData, double>(
|
||||
dataSource: <SalesData>[
|
||||
SalesData(2, 10, Colors.red),
|
||||
SalesData(3, -3, Colors.green),
|
||||
SalesData(4, 5, Colors.red, true),
|
||||
SalesData(5, 4, Colors.blue),
|
||||
SalesData(6, -2, Colors.red),
|
||||
SalesData(7, -5, Colors.red, true),
|
||||
SalesData(8, -10, Colors.red),
|
||||
SalesData(9, 8, Colors.red),
|
||||
SalesData(10, 8, Colors.red),
|
||||
SalesData(11, 5, Colors.red),
|
||||
SalesData(12, 8, Colors.red, false),
|
||||
SalesData(13, -5, Colors.red, false, true),
|
||||
],
|
||||
negativePointsColor: const Color.fromRGBO(229, 101, 144, 1),
|
||||
intermediateSumColor: const Color.fromRGBO(79, 129, 188, 1),
|
||||
totalSumColor: const Color.fromRGBO(79, 129, 188, 1),
|
||||
xValueMapper: (SalesData sales, _) => sales.x,
|
||||
yValueMapper: (SalesData sales, _) => sales.y,
|
||||
intermediateSumPredicate: (SalesData sales, _) => sales.isIntermediate,
|
||||
totalSumPredicate: (SalesData sales, _) => sales.isTotal,
|
||||
connectorLineSettings: WaterfallConnectorLineSettings(
|
||||
width: 2.5
|
||||
)
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![waterfall_chart](images/cartesian-chart-types/waterfall_series.png)
|
|
@ -9,803 +9,31 @@ documentation: ug
|
|||
|
||||
# Chart types in Flutter Circular Charts (SfCircularChart)
|
||||
|
||||
## Pie chart
|
||||
|
||||
To render a pie chart, create an instance of [`PieSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/PieSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries-class.html) collection property of [`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html). The following properties can be used to customize the appearance of pie segment:
|
||||
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`strokeWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`strokeColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointColorMapper.html) - maps the color for individual points from the data source.
|
||||
* [`pointShaderMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointShaderMapper.html) - maps the shader (gradient or image shader) for individual points from the data source.
|
||||
* [`pointRenderMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointRenderMode.html) - defines the painting mode for the data points either as segment or gradient.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<ChartData> chartData = [
|
||||
ChartData('David', 25),
|
||||
ChartData('Steve', 38),
|
||||
ChartData('Jack', 34),
|
||||
ChartData('Others', 52)
|
||||
];
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
// Render pie chart
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
pointColorMapper:(ChartData data, _) => data.color,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.y, [this.color]);
|
||||
final String x;
|
||||
final double y;
|
||||
final Color color;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie chart](images/circular-chart-types/pie.jpg)
|
||||
|
||||
### Changing pie size
|
||||
|
||||
You can use the [`radius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/radius.html) property to change the diameter of the pie chart with respect to the plot area. The default value is 80%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of pie
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie size](images/circular-chart-types/pie_sizing.jpg)
|
||||
|
||||
### Exploding a segment
|
||||
|
||||
You can explode a pie segment by enabling the [`explode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explode.html) property. The following properties can be used to customize the explode options:
|
||||
|
||||
* [`explodeIndex`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeIndex.html) - specifies the index of the slice to explode it at the initial rendering.
|
||||
* [`explodeOffset`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeOffset.html) - specifies the offset of exploded slice. The value ranges from 0% to 100%.
|
||||
* [`explodeGesture`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeOffset.html) - gesture for activating the explode. Explode can be activated in single tap, double tap, and long press. The available gesture types are [`singleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), [`doubleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), [`longPress`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), and [`none`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html) and the default value is [`singleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Segments will explode on tap
|
||||
explode: true,
|
||||
// First segment will be exploded on initial rendering
|
||||
explodeIndex: 1
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie explode](images/circular-chart-types/pie_explode.jpg)
|
||||
|
||||
### Exploding all the segments
|
||||
|
||||
Using the [`explodeAll`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeAll.html) property of [`PieSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/PieSeries-class.html), you can explode all the pie segments.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
explode: true,
|
||||
// All the segments will be exploded
|
||||
explodeAll: true
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie explode all](images/circular-chart-types/pie_explodeAll.jpg)
|
||||
|
||||
### Angle of pie
|
||||
|
||||
[`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html) allows you to render all the data points or segments in semi-pie, quarter-pie, or in any sector using the [`startAngle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/startAngle.html) and [`endAngle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/endAngle.html) properties.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
startAngle: 270, // starting angle of pie
|
||||
endAngle: 90 // ending angle of pie
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie angle](images/circular-chart-types/pie_angle.jpg)
|
||||
|
||||
### Grouping data points
|
||||
|
||||
The small segments in the pie chart can be grouped into **others** category using the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) and [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) properties of [`PieSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/PieSeries-class.html). The [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) property specifies the grouping type based on the actual data point value or by points length, and the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) property sets the limit to group data points into a single slice. The grouped segment is labeled as **Others** in legend and toggled as any other segment. The default value of the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) property is null, and the default value of [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) property is [`point`]().
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
groupMode: CircularChartGroupMode.point,
|
||||
// As the grouping mode is point, 2 points will be grouped
|
||||
groupTo: 2
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie grouping](images/circular-chart-types/pie_grouping.jpg)
|
||||
|
||||
### Various radius for each slice
|
||||
|
||||
The [`pointRadiusMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointRadiusMapper.html) maps the field name, which will be considered for calculating the radius of the data points.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<ChartData> chartData = [
|
||||
ChartData('USA', 10, '70%'),
|
||||
ChartData('China', 11, '60%'),
|
||||
ChartData('Russia', 9, '52%'),
|
||||
ChartData('Germany', 10, '40%')
|
||||
];
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius for each segment from data source
|
||||
pointRadiusMapper: (ChartData data, _) => data.size
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.y, this.size);
|
||||
final String x;
|
||||
final double y;
|
||||
final String size;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie various radius](images/circular-chart-types/pie_radius.jpg)
|
||||
|
||||
## Doughnut chart
|
||||
|
||||
To render a doughnut chart, create an instance of [`DoughnutSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DoughnutSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart/series.html) collection property of [`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html). The following properties can be used to customize the appearance of doughnut segment:
|
||||
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`strokeWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartPoint/strokeWidth.html) - changes the stroke width of the series.
|
||||
* [`strokeColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartPoint/strokeColor.html) - changes the stroke color of the series.
|
||||
* [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointColorMapper.html) - maps the color for individual points from the data source.
|
||||
* [`pointShaderMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointShaderMapper.html) - maps the shader (gradient or image shader) for individual points from the data source.
|
||||
* [`pointRenderMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointRenderMode.html) - defines the painting mode for the data points either as segment or gradient.
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<ChartData> chartData = [
|
||||
ChartData('David', 25, Color.fromRGBO(9,0,136,1)),
|
||||
ChartData('Steve', 38, Color.fromRGBO(147,0,119,1)),
|
||||
ChartData('Jack', 34, Color.fromRGBO(228,0,124,1)),
|
||||
ChartData('Others', 52, Color.fromRGBO(255,189,57,1))
|
||||
];
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
// Renders doughnut chart
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
pointColorMapper:(ChartData data, _) => data.color,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.y, [this.color]);
|
||||
final String x;
|
||||
final double y;
|
||||
final Color color;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut chart](images/circular-chart-types/doughnut.jpg)
|
||||
|
||||
### Rounded corners
|
||||
|
||||
The [`cornerStyle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/cornerStyle.html) property specifies the corner type for doughnut chart. The corners can be customized using the [`bothFlat`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), [`bothCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), [`startCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), and [`endCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html) options. The default value of this property is [`bothFlat`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Corner style of doughnut segment
|
||||
cornerStyle: CornerStyle.bothCurve
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut corner style](images/circular-chart-types/doughnut_roundCorner.jpg)
|
||||
|
||||
### Doughnut with center elevation
|
||||
|
||||
You can use the Annotations property in charts, to provide center elevation text in doughnut charts as shown below:
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
annotations: <CircularChartAnnotation>[
|
||||
CircularChartAnnotation(
|
||||
child: Container(
|
||||
child: PhysicalModel(
|
||||
child: Container(),
|
||||
shape: BoxShape.circle,
|
||||
elevation: 10,
|
||||
shadowColor: Colors.black,
|
||||
color: const Color.fromRGBO(230, 230, 230, 1)))),
|
||||
CircularChartAnnotation(
|
||||
child: Container(
|
||||
child: const Text('62%',
|
||||
style: TextStyle(
|
||||
color: Color.fromRGBO(0, 0, 0, 0.5), fontSize: 25))))
|
||||
],
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of doughnut
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut elevation](images/circular-chart-types/doughnut_elevation.png)
|
||||
|
||||
### Doughnut with color mapping
|
||||
|
||||
You can use the [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartSeries/pointColorMapper.html) property to provide different color mappings to the doughnut charts as shown below:
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
pointColorMapper: (ChartSampleData data, _) => data.pointColor,
|
||||
// Radius of doughnut
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut color mapping](images/circular-chart-types/doughnut_colormapping.png)
|
||||
|
||||
### Changing the doughnut size
|
||||
|
||||
You can use the [`radius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/radius.html) property to change the diameter of the doughnut chart with respect to the plot area. The default value of this property is 80%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of doughnut
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut size](images/circular-chart-types/doughnut_size.jpg)
|
||||
|
||||
### Changing doughnut inner radius
|
||||
|
||||
You can change the inner radius of doughnut chart using the [`innerRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/innerRadius.html) property with respect to the plot area. The value ranges from 0% to 100%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of doughnut's inner circle
|
||||
innerRadius: '80%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut innner radius](images/circular-chart-types/doughnut_innerRadius.jpg)
|
||||
|
||||
### Exploding a segment
|
||||
|
||||
You can explode a doughnut segment by enabling the [`explode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explode.html) property. The following properties are used to customize the explode options:
|
||||
|
||||
* [`explodeIndex`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeIndex.html) - specifies the index of the slice to explode it at the initial rendering.
|
||||
* [`explodeOffset`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeOffset.html) - specifies the offset of exploded slice. The value ranges from 0% to 100%.
|
||||
* [`explodeGesture`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeGesture.html) - gesture for activating the explode. Explode can be activated in single tap, double tap, and long press. The available gesture types are [`singleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), [`doubleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), [`longPress`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), and [`none`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html). The default value is [`singleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Explode the segments on tap
|
||||
explode: true,
|
||||
explodeIndex: 1
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut explode](images/circular-chart-types/doughnut_explode.jpg)
|
||||
|
||||
### Exploding all the segments
|
||||
|
||||
Using the [`explodeAll`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeAll.html) property of [`DoughnutSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DoughnutSeries-class.html), you can explode all the doughnut segments.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
explode: true,
|
||||
// Explode all the segments
|
||||
explodeAll: true
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie explode all](images/circular-chart-types/doughnut_explodeAll.jpg)
|
||||
|
||||
### Angle of doughnut
|
||||
|
||||
[`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html) allows you to render all the data points or segments in semi-pie, quarter-pie, or in any sector using the [`startAngle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/startAngle.html) and [`endAngle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/endAngle.html) properties.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
startAngle: 270, // Starting angle of doughnut
|
||||
endAngle: 90 // Ending angle of doughnut
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut angle](images/circular-chart-types/doughnut_angle.jpg)
|
||||
|
||||
### Grouping data points
|
||||
|
||||
The small segments in the doughnut chart can be grouped into **others** category using the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) and [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) properties of [`DoughnutSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DoughnutSeries-class.html). The [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) property is used to specify the grouping type based on the actual data point value or by points length, and the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) property is used to set the limit to group data points into a single slice. The grouped segment is labeled as **Others** in legend and toggled as any other segment. The default value of the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) property is null, and the default value of [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) property is [`point`]().
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Mode of grouping
|
||||
groupMode: CircularChartGroupMode.point,
|
||||
groupTo: 2
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut grouping](images/circular-chart-types/doughnut_grouping.jpg)
|
||||
|
||||
## Radial bar chart
|
||||
|
||||
The radial bar chart is used for showing the comparisons among the categories using the circular shapes. To render a radial bar chart, create an instance of [`RadialBarSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries-class.html), and add to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart/series.html) collection property of [`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html). The following properties can be used to customize the appearance of radial bar segment:
|
||||
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`strokeWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartPoint/strokeColor.html) - changes the stroke width of the series.
|
||||
* [`strokeColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartPoint/strokeWidth.html) - changes the stroke color of the series.
|
||||
* [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointColorMapper.html) - maps the color for individual points from the data source.
|
||||
* [`gap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/gap.html) - changes the spacing between two individual segments. The default value of spacing is 1%.
|
||||
* [`maximumValue`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/maximumValue.html) - represents the entire span of an individual circle. The default value of the this property is null.
|
||||
* [`trackColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/trackColor.html) - changes the color of the track area.
|
||||
* [`trackBorderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/trackBorderColor.html) - changes the color of the track border.
|
||||
* [`trackBorderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/trackBorderWidth.html) - changes the width of the track border.
|
||||
* [`trackOpacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/trackOpacity.html) - controls the transparency of the track area.
|
||||
* [`useSeriesColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/useSeriesColor.html) - uses the point color for filling the track area.
|
||||
* [`pointShaderMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointShaderMapper.html) - maps the shader (gradient or image shader) for individual points from the data source.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
// Renders radial bar chart
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Radial bar chart](images/circular-chart-types/radialbar.jpg)
|
||||
|
||||
### Changing the radial bar size
|
||||
|
||||
You can use the [`radius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/radius.html) property to change the diameter of the radial bar chart with respect to the plot area. The default value is 80%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of the radial bar
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Radial bar size](images/circular-chart-types/radialbar_sizing.jpg)
|
||||
|
||||
### Changing the radial bar inner radius
|
||||
|
||||
You can change the inner radius of radial bar chart using the [`innerRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/innerRadius.html) property with respect to the plot area. The value ranges from 0% to 100%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of the radial bar's inner circle
|
||||
innerRadius: '80%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
### Rounded corners
|
||||
|
||||
The [`cornerStyle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/cornerStyle.html) property specifies the corner type for radial bar chart. The corners can be customized using the [`bothFlat`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), [`bothCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), [`startCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), and [`endCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html) options. The default value of this property is [`bothFlat`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Corner style of radial bar segment
|
||||
cornerStyle: CornerStyle.bothCurve
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Radial bar corner style](images/circular-chart-types/radialbar_roundCorner.jpg)
|
||||
|
||||
### Rendering data labels
|
||||
|
||||
Data labels can be enabled using the [`isVisible`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/isVisible.html) property of [`dataLabelSettings`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/dataLabelSettings.html). The appearance of label can be customized using the following properties:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/color.html) - changes the label background color.
|
||||
* [`textStyle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelRenderArgs/textStyle.html) - changes the text color, size, font family, fontStyle, and font weight.
|
||||
* [`textStyle.color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartTextStyle/color.html) - changes the color of the text.
|
||||
* [`textStyle.fontFamily`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartTextStyle/fontFamily.html) - changes the font family for chart title.
|
||||
* [`textStyle.fontStyle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartTextStyle/fontStyle.html) - changes the font style for the chart title.
|
||||
* [`textStyle.fontSize`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartTextStyle/fontSize.html) - changes the font size for the chart title.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/opacity.html) - controls the transparency of the label background color.
|
||||
* [`borderRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/borderRadius.html) - customizes the data label border radius.
|
||||
* [`angle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/angle.html) - rotates the labels.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/borderWidth.html) - changes the stroke width of the data label shape.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/borderColor.html) - changes the stroke color of the data label shape.
|
||||
* [`useSeriesColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/useSeriesColor.html) - uses the series color for filling the data label shape.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
// Renders the data label
|
||||
isVisible: true
|
||||
)
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Radial bar data label](images/circular-chart-types/radialbar_dataLabel.jpg)
|
||||
This page helps to navigate to the Chart types available in the Syncfusion Flutter Circular Charts widgets.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
Doughnut Chart
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://help.syncfusion.com/flutter/circular-charts/doughnut-chart">Link</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Pie Chart
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://help.syncfusion.com/flutter/circular-charts/pie-chart">Link</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Radial bar Chart
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://help.syncfusion.com/flutter/circular-charts/radialbar-chart">Link</a>
|
||||
</td>
|
||||
|
||||
</table>
|
||||
|
|
|
@ -0,0 +1,369 @@
|
|||
---
|
||||
layout: post
|
||||
title: Doughnut Chart in Flutter Circular Charts widget | Syncfusion
|
||||
description: Learn here all about Doughnut Chart of Syncfusion Flutter Circular Charts (SfCircularChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Doughnut Chart in Flutter Circular Charts (SfCircularChart)
|
||||
|
||||
To render a doughnut chart, create an instance of [`DoughnutSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DoughnutSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart/series.html) collection property of [`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html). The following properties can be used to customize the appearance of doughnut segment:
|
||||
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`strokeWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartPoint/strokeWidth.html) - changes the stroke width of the series.
|
||||
* [`strokeColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartPoint/strokeColor.html) - changes the stroke color of the series.
|
||||
* [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointColorMapper.html) - maps the color for individual points from the data source.
|
||||
* [`pointShaderMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointShaderMapper.html) - maps the shader (gradient or image shader) for individual points from the data source.
|
||||
* [`pointRenderMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointRenderMode.html) - defines the painting mode for the data points either as segment or gradient.
|
||||
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<ChartData> chartData = [
|
||||
ChartData('David', 25, Color.fromRGBO(9,0,136,1)),
|
||||
ChartData('Steve', 38, Color.fromRGBO(147,0,119,1)),
|
||||
ChartData('Jack', 34, Color.fromRGBO(228,0,124,1)),
|
||||
ChartData('Others', 52, Color.fromRGBO(255,189,57,1))
|
||||
];
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
// Renders doughnut chart
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
pointColorMapper:(ChartData data, _) => data.color,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.y, [this.color]);
|
||||
final String x;
|
||||
final double y;
|
||||
final Color color;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut chart](images/circular-chart-types/doughnut.jpg)
|
||||
|
||||
## Rounded corners
|
||||
|
||||
The [`cornerStyle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/cornerStyle.html) property specifies the corner type for doughnut chart. The corners can be customized using the [`bothFlat`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), [`bothCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), [`startCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), and [`endCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html) options. The default value of this property is [`bothFlat`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Corner style of doughnut segment
|
||||
cornerStyle: CornerStyle.bothCurve
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut corner style](images/circular-chart-types/doughnut_roundCorner.jpg)
|
||||
|
||||
## Doughnut with center elevation
|
||||
|
||||
You can use the Annotations property in charts, to provide center elevation text in doughnut charts as shown below:
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
annotations: <CircularChartAnnotation>[
|
||||
CircularChartAnnotation(
|
||||
child: Container(
|
||||
child: PhysicalModel(
|
||||
child: Container(),
|
||||
shape: BoxShape.circle,
|
||||
elevation: 10,
|
||||
shadowColor: Colors.black,
|
||||
color: const Color.fromRGBO(230, 230, 230, 1)))),
|
||||
CircularChartAnnotation(
|
||||
child: Container(
|
||||
child: const Text('62%',
|
||||
style: TextStyle(
|
||||
color: Color.fromRGBO(0, 0, 0, 0.5), fontSize: 25))))
|
||||
],
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of doughnut
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut elevation](images/circular-chart-types/doughnut_elevation.png)
|
||||
|
||||
## Doughnut with color mapping
|
||||
|
||||
You can use the [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartSeries/pointColorMapper.html) property to provide different color mappings to the doughnut charts as shown below:
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
pointColorMapper: (ChartSampleData data, _) => data.pointColor,
|
||||
// Radius of doughnut
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut color mapping](images/circular-chart-types/doughnut_colormapping.png)
|
||||
|
||||
## Changing the doughnut size
|
||||
|
||||
You can use the [`radius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/radius.html) property to change the diameter of the doughnut chart with respect to the plot area. The default value of this property is 80%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of doughnut
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut size](images/circular-chart-types/doughnut_size.jpg)
|
||||
|
||||
## Changing doughnut inner radius
|
||||
|
||||
You can change the inner radius of doughnut chart using the [`innerRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/innerRadius.html) property with respect to the plot area. The value ranges from 0% to 100%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of doughnut's inner circle
|
||||
innerRadius: '80%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut innner radius](images/circular-chart-types/doughnut_innerRadius.jpg)
|
||||
|
||||
## Exploding a segment
|
||||
|
||||
You can explode a doughnut segment by enabling the [`explode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explode.html) property. The following properties are used to customize the explode options:
|
||||
|
||||
* [`explodeIndex`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeIndex.html) - specifies the index of the slice to explode it at the initial rendering.
|
||||
* [`explodeOffset`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeOffset.html) - specifies the offset of exploded slice. The value ranges from 0% to 100%.
|
||||
* [`explodeGesture`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeGesture.html) - gesture for activating the explode. Explode can be activated in single tap, double tap, and long press. The available gesture types are [`singleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), [`doubleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), [`longPress`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), and [`none`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html). The default value is [`singleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Explode the segments on tap
|
||||
explode: true,
|
||||
explodeIndex: 1
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut explode](images/circular-chart-types/doughnut_explode.jpg)
|
||||
|
||||
## Exploding all the segments
|
||||
|
||||
Using the [`explodeAll`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeAll.html) property of [`DoughnutSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DoughnutSeries-class.html), you can explode all the doughnut segments.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
explode: true,
|
||||
// Explode all the segments
|
||||
explodeAll: true
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie explode all](images/circular-chart-types/doughnut_explodeAll.jpg)
|
||||
|
||||
## Angle of doughnut
|
||||
|
||||
[`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html) allows you to render all the data points or segments in semi-pie, quarter-pie, or in any sector using the [`startAngle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/startAngle.html) and [`endAngle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/endAngle.html) properties.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
startAngle: 270, // Starting angle of doughnut
|
||||
endAngle: 90 // Ending angle of doughnut
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut angle](images/circular-chart-types/doughnut_angle.jpg)
|
||||
|
||||
## Grouping data points
|
||||
|
||||
The small segments in the doughnut chart can be grouped into **others** category using the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) and [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) properties of [`DoughnutSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DoughnutSeries-class.html). The [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) property is used to specify the grouping type based on the actual data point value or by points length, and the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) property is used to set the limit to group data points into a single slice. The grouped segment is labeled as **Others** in legend and toggled as any other segment. The default value of the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) property is null, and the default value of [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) property is [`point`]().
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
DoughnutSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Mode of grouping
|
||||
groupMode: CircularChartGroupMode.point,
|
||||
groupTo: 2
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Doughnut grouping](images/circular-chart-types/doughnut_grouping.jpg)
|
|
@ -0,0 +1,267 @@
|
|||
---
|
||||
layout: post
|
||||
title: Pie Chart in Flutter Circular Charts widget | Syncfusion
|
||||
description: Learn here all about Pie Chart of Syncfusion Flutter Circular Charts (SfCircularChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Pie Chart in Flutter Circular Charts (SfCircularChart)
|
||||
|
||||
To render a pie chart, create an instance of [`PieSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/PieSeries-class.html), and add it to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries-class.html) collection property of [`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html). The following properties can be used to customize the appearance of pie segment:
|
||||
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`strokeWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/borderWidth.html) - changes the stroke width of the series.
|
||||
* [`strokeColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/borderColor.html) - changes the stroke color of the series.
|
||||
* [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointColorMapper.html) - maps the color for individual points from the data source.
|
||||
* [`pointShaderMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointShaderMapper.html) - maps the shader (gradient or image shader) for individual points from the data source.
|
||||
* [`pointRenderMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointRenderMode.html) - defines the painting mode for the data points either as segment or gradient.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<ChartData> chartData = [
|
||||
ChartData('David', 25),
|
||||
ChartData('Steve', 38),
|
||||
ChartData('Jack', 34),
|
||||
ChartData('Others', 52)
|
||||
];
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
// Render pie chart
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
pointColorMapper:(ChartData data, _) => data.color,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.y, [this.color]);
|
||||
final String x;
|
||||
final double y;
|
||||
final Color color;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie chart](images/circular-chart-types/pie.jpg)
|
||||
|
||||
## Changing pie size
|
||||
|
||||
You can use the [`radius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/radius.html) property to change the diameter of the pie chart with respect to the plot area. The default value is 80%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of pie
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie size](images/circular-chart-types/pie_sizing.jpg)
|
||||
|
||||
## Exploding a segment
|
||||
|
||||
You can explode a pie segment by enabling the [`explode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explode.html) property. The following properties can be used to customize the explode options:
|
||||
|
||||
* [`explodeIndex`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeIndex.html) - specifies the index of the slice to explode it at the initial rendering.
|
||||
* [`explodeOffset`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeOffset.html) - specifies the offset of exploded slice. The value ranges from 0% to 100%.
|
||||
* [`explodeGesture`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeOffset.html) - gesture for activating the explode. Explode can be activated in single tap, double tap, and long press. The available gesture types are [`singleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), [`doubleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), [`longPress`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html), and [`none`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html) and the default value is [`singleTap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ActivationMode-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Segments will explode on tap
|
||||
explode: true,
|
||||
// First segment will be exploded on initial rendering
|
||||
explodeIndex: 1
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie explode](images/circular-chart-types/pie_explode.jpg)
|
||||
|
||||
## Exploding all the segments
|
||||
|
||||
Using the [`explodeAll`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/explodeAll.html) property of [`PieSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/PieSeries-class.html), you can explode all the pie segments.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
explode: true,
|
||||
// All the segments will be exploded
|
||||
explodeAll: true
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie explode all](images/circular-chart-types/pie_explodeAll.jpg)
|
||||
|
||||
## Angle of pie
|
||||
|
||||
[`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html) allows you to render all the data points or segments in semi-pie, quarter-pie, or in any sector using the [`startAngle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/startAngle.html) and [`endAngle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/endAngle.html) properties.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
startAngle: 270, // starting angle of pie
|
||||
endAngle: 90 // ending angle of pie
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie angle](images/circular-chart-types/pie_angle.jpg)
|
||||
|
||||
## Grouping data points
|
||||
|
||||
The small segments in the pie chart can be grouped into **others** category using the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) and [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) properties of [`PieSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/PieSeries-class.html). The [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) property specifies the grouping type based on the actual data point value or by points length, and the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) property sets the limit to group data points into a single slice. The grouped segment is labeled as **Others** in legend and toggled as any other segment. The default value of the [`groupTo`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupTo.html) property is null, and the default value of [`groupMode`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/groupMode.html) property is [`point`]().
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
groupMode: CircularChartGroupMode.point,
|
||||
// As the grouping mode is point, 2 points will be grouped
|
||||
groupTo: 2
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie grouping](images/circular-chart-types/pie_grouping.jpg)
|
||||
|
||||
## Various radius for each slice
|
||||
|
||||
The [`pointRadiusMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointRadiusMapper.html) maps the field name, which will be considered for calculating the radius of the data points.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final List<ChartData> chartData = [
|
||||
ChartData('USA', 10, '70%'),
|
||||
ChartData('China', 11, '60%'),
|
||||
ChartData('Russia', 9, '52%'),
|
||||
ChartData('Germany', 10, '40%')
|
||||
];
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
PieSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius for each segment from data source
|
||||
pointRadiusMapper: (ChartData data, _) => data.size
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
class ChartData {
|
||||
ChartData(this.x, this.y, this.size);
|
||||
final String x;
|
||||
final double y;
|
||||
final String size;
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Pie various radius](images/circular-chart-types/pie_radius.jpg)
|
|
@ -0,0 +1,189 @@
|
|||
---
|
||||
layout: post
|
||||
title: Radial bar Chart in Flutter Circular Charts widget | Syncfusion
|
||||
description: Learn here all about Radial bar Chart of Syncfusion Flutter Circular Charts (SfCircularChart) widget and more.
|
||||
platform: flutter
|
||||
control: Chart
|
||||
documentation: ug
|
||||
---
|
||||
|
||||
# Radial bar Chart in Flutter Circular Charts (SfCircularChart)
|
||||
|
||||
The radial bar chart is used for showing the comparisons among the categories using the circular shapes. To render a radial bar chart, create an instance of [`RadialBarSeries`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries-class.html), and add to the [`series`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart/series.html) collection property of [`SfCircularChart`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/SfCircularChart-class.html). The following properties can be used to customize the appearance of radial bar segment:
|
||||
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/opacity.html) - controls the transparency of the chart series.
|
||||
* [`strokeWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartPoint/strokeColor.html) - changes the stroke width of the series.
|
||||
* [`strokeColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartPoint/strokeWidth.html) - changes the stroke color of the series.
|
||||
* [`pointColorMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointColorMapper.html) - maps the color for individual points from the data source.
|
||||
* [`gap`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/gap.html) - changes the spacing between two individual segments. The default value of spacing is 1%.
|
||||
* [`maximumValue`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/maximumValue.html) - represents the entire span of an individual circle. The default value of the this property is null.
|
||||
* [`trackColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/trackColor.html) - changes the color of the track area.
|
||||
* [`trackBorderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/trackBorderColor.html) - changes the color of the track border.
|
||||
* [`trackBorderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/trackBorderWidth.html) - changes the width of the track border.
|
||||
* [`trackOpacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/trackOpacity.html) - controls the transparency of the track area.
|
||||
* [`useSeriesColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/RadialBarSeries/useSeriesColor.html) - uses the point color for filling the track area.
|
||||
* [`pointShaderMapper`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/pointShaderMapper.html) - maps the shader (gradient or image shader) for individual points from the data source.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
// Renders radial bar chart
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Radial bar chart](images/circular-chart-types/radialbar.jpg)
|
||||
|
||||
## Changing the radial bar size
|
||||
|
||||
You can use the [`radius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/radius.html) property to change the diameter of the radial bar chart with respect to the plot area. The default value is 80%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of the radial bar
|
||||
radius: '50%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Radial bar size](images/circular-chart-types/radialbar_sizing.jpg)
|
||||
|
||||
## Changing the radial bar inner radius
|
||||
|
||||
You can change the inner radius of radial bar chart using the [`innerRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/innerRadius.html) property with respect to the plot area. The value ranges from 0% to 100%.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Radius of the radial bar's inner circle
|
||||
innerRadius: '80%'
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
## Rounded corners
|
||||
|
||||
The [`cornerStyle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/cornerStyle.html) property specifies the corner type for radial bar chart. The corners can be customized using the [`bothFlat`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), [`bothCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), [`startCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html), and [`endCurve`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html) options. The default value of this property is [`bothFlat`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CornerStyle-class.html).
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
// Corner style of radial bar segment
|
||||
cornerStyle: CornerStyle.bothCurve
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Radial bar corner style](images/circular-chart-types/radialbar_roundCorner.jpg)
|
||||
|
||||
## Rendering data labels
|
||||
|
||||
Data labels can be enabled using the [`isVisible`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/isVisible.html) property of [`dataLabelSettings`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/dataLabelSettings.html). The appearance of label can be customized using the following properties:
|
||||
|
||||
* [`color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/color.html) - changes the label background color.
|
||||
* [`textStyle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelRenderArgs/textStyle.html) - changes the text color, size, font family, fontStyle, and font weight.
|
||||
* [`textStyle.color`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartTextStyle/color.html) - changes the color of the text.
|
||||
* [`textStyle.fontFamily`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartTextStyle/fontFamily.html) - changes the font family for chart title.
|
||||
* [`textStyle.fontStyle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartTextStyle/fontStyle.html) - changes the font style for the chart title.
|
||||
* [`textStyle.fontSize`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/ChartTextStyle/fontSize.html) - changes the font size for the chart title.
|
||||
* [`opacity`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/CircularSeries/opacity.html) - controls the transparency of the label background color.
|
||||
* [`borderRadius`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/borderRadius.html) - customizes the data label border radius.
|
||||
* [`angle`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/angle.html) - rotates the labels.
|
||||
* [`borderWidth`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/borderWidth.html) - changes the stroke width of the data label shape.
|
||||
* [`borderColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/borderColor.html) - changes the stroke color of the data label shape.
|
||||
* [`useSeriesColor`](https://pub.dev/documentation/syncfusion_flutter_charts/latest/charts/DataLabelSettings/useSeriesColor.html) - uses the series color for filling the data label shape.
|
||||
|
||||
{% highlight dart %}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: Container(
|
||||
child: SfCircularChart(
|
||||
series: <CircularSeries>[
|
||||
RadialBarSeries<ChartData, String>(
|
||||
dataSource: chartData,
|
||||
xValueMapper: (ChartData data, _) => data.x,
|
||||
yValueMapper: (ChartData data, _) => data.y,
|
||||
dataLabelSettings: DataLabelSettings(
|
||||
// Renders the data label
|
||||
isVisible: true
|
||||
)
|
||||
)
|
||||
]
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
{% endhighlight %}
|
||||
|
||||
![Radial bar data label](images/circular-chart-types/radialbar_dataLabel.jpg)
|
|
@ -45,6 +45,7 @@
|
|||
</li>
|
||||
<li><a href="/Flutter/Licensing/licensing">Licensing</a></li>
|
||||
<li><a href="/Flutter/globalization/globalization">Globalization</a></li>
|
||||
<li><a href="/Flutter/accessibility/accessibility">Accessibility</a></li>
|
||||
<li><a href="/Flutter/themes/themes">Themes</a></li>
|
||||
<li>
|
||||
Barcode Generator
|
||||
|
@ -85,7 +86,38 @@
|
|||
<li><a href="/Flutter/cartesian-charts/overview">Overview</a></li>
|
||||
<li><a href="/Flutter/cartesian-charts/getting-started">Getting Started</a></li>
|
||||
<li><a href="/Flutter/cartesian-charts/chart-title">Chart Title</a></li>
|
||||
<li><a href="/Flutter/cartesian-charts/chart-types">Chart types</a></li>
|
||||
<li><a href="/Flutter/cartesian-charts/chart-types">Chart Types</a>
|
||||
<ul>
|
||||
<li><a href="Flutter/cartesian-charts/area-chart">Area Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/bar-chart">Bar Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/boxandwhisker-chart">Box and Whisker Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/bubble-chart">Bubble Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/candle-chart">Candle Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/column-chart">Column Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/fastline-chart">Fast line Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/hilo-chart">Hilo Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/histogram-chart">Histogram Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/line-chart">Line Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/ohlc-chart">OHLC Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/rangearea-chart">Range area Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/rangecolumn-chart">Range column Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/scatter-chart">Scatter Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/spline-chart">Spline Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/splinearea-chart">Spline area Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/splinerangearea-chart">Spline range area Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stackedarea-chart">Stacked area Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stackedarea100-chart">Stacked area 100 Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stackedbar-chart">Stacked bar Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stackedbar100-chart">Stacked bar 100 Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stackedcolumn-chart">Stacked column Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stackedcolumn100-chart">Stacked column 100 Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stackedline-chart">Stacked line Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stackedline100-chart">Stacked line 100 Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/steparea-chart">Step area Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/stepline-chart">Step line Chart</a></li>
|
||||
<li><a href="Flutter/cartesian-charts/waterfall-chart">Waterfall Chart</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="/Flutter/cartesian-charts/multiple-charts">Multiple/Combo Charts</a></li>
|
||||
<li><a href="/Flutter/cartesian-charts/series-customization">Series Customization</a></li>
|
||||
<li><a href="/Flutter/cartesian-charts/axis-types">Axis Types</a></li>
|
||||
|
@ -114,7 +146,13 @@
|
|||
<li><a href="/Flutter/circular-charts/overview">Overview</a></li>
|
||||
<li><a href="/Flutter/circular-charts/getting-started">Getting Started</a></li>
|
||||
<li><a href="/Flutter/circular-charts/chart-title">Chart Title</a></li>
|
||||
<li><a href="/Flutter/circular-charts/chart-types">Chart Types</a></li>
|
||||
<li><a href="/Flutter/circular-charts/chart-types">Chart Types</a>
|
||||
<ul>
|
||||
<li><a href="Flutter/circular-charts/doughnut-chart">Doughnut Chart</a></li>
|
||||
<li><a href="Flutter/circular-charts/pie-chart">Pie Chart</a></li>
|
||||
<li><a href="Flutter/circular-charts/radialbar-chart">Radial bar Chart</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="/Flutter/circular-charts/circular-series-customization">Series Customization</a></li>
|
||||
<li><a href="/Flutter/circular-charts/datalabel">Data label</a></li>
|
||||
<li><a href="/Flutter/circular-charts/legend">Legend</a></li>
|
||||
|
|
Загрузка…
Ссылка в новой задаче