Back to Devexpress

Doughnut Chart

aspnet-15926-components-chart-control-concepts-creating-charts-3d-chart-types-doughnut-chart.md

latest5.9 KB
Original Source

Doughnut Chart

  • Sep 30, 2023
  • 3 minutes to read

Short Description

A Doughnut3DSeriesView object is used to display the Doughnut Chart. This chart type belongs to the Pie, Doughnut and Funnel Series View type. This view allows you to compare the percentage values of different point arguments in the same series, and display these values as easy-to-understand pie slices (with a hole in the center of the pie).

A Doughnut chart is shown in the image below.

Chart Type Characteristics

The table below lists the main characteristics of this chart type.

FeatureValue
Series View typeDoughnut3DSeriesView
Diagram typeSimpleDiagram3D
Number of arguments per series point1
Number of values per series point1

Note

For information on which chart types can be combined with the Doughnut Chart , refer to the following help topic: Combining Different Series Views.

Example

The following example creates a ChartControl with a series of the Doughnut3DSeriesView type, sets its general properties, and adds this chart to a form at runtime. Before proceeding with this example, first create a Windows Forms Application in Visual Studio, and add all required assemblies to the project’s References list.

Then, add the following code to the Form.Load event handler.

csharp
using System;
using System.Windows.Forms;
using DevExpress.XtraCharts;
// ...

private void Form1_Load(object sender, EventArgs e) {
    // Create an empty chart.
    ChartControl DoughnutChart3D = new ChartControl();

    // Create a doughnut series.
    Series series1 = new Series("Doughnut Series 1", ViewType.Doughnut3D);

    // Populate the series with points.
    series1.Points.Add(new SeriesPoint("Russia", 17.0752));
    series1.Points.Add(new SeriesPoint("Canada", 9.98467));
    series1.Points.Add(new SeriesPoint("USA", 9.63142));
    series1.Points.Add(new SeriesPoint("China", 9.59696));
    series1.Points.Add(new SeriesPoint("Brazil", 8.511965));
    series1.Points.Add(new SeriesPoint("Australia", 7.68685));
    series1.Points.Add(new SeriesPoint("India", 3.28759));
    series1.Points.Add(new SeriesPoint("Others", 81.2));

    // Add the series to the chart.
    DoughnutChart3D.Series.Add(series1);

    // Adjust the value numeric options of the series.
    series1.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
    series1.PointOptions.ValueNumericOptions.Precision = 2;

    // Adjust the view-type-specific options of the series.
    ((Doughnut3DSeriesView)series1.View).HoleRadiusPercent = 30;
    ((Doughnut3DSeriesView)series1.View).ExplodedPoints.Add(series1.Points[0]);

    // Access the diagram's options.
    ((SimpleDiagram3D)DoughnutChart3D.Diagram).RotationType = RotationType.UseAngles;
    ((SimpleDiagram3D)DoughnutChart3D.Diagram).RotationAngleX = -35;

    // Add a title to the chart and hide the legend.
    ChartTitle chartTitle1 = new ChartTitle();
    chartTitle1.Text = "3D Doughnut Chart";
    DoughnutChart3D.Titles.Add(chartTitle1);
    DoughnutChart3D.Legend.Visible = false;

    // Add the chart to the form.
    DoughnutChart3D.Dock = DockStyle.Fill;
    this.Controls.Add(DoughnutChart3D);
}
vb
Imports System
Imports System.Windows.Forms
Imports DevExpress.XtraCharts
' ...

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    ' Create an empty chart.
    Dim DoughnutChart3D As New ChartControl()

    ' Create a doughnut series.
    Dim series1 As New Series("Doughnut Series 1", ViewType.Doughnut3D)

    ' Populate the series with points.
    series1.Points.Add(New SeriesPoint("Russia", 17.0752))
    series1.Points.Add(New SeriesPoint("Canada", 9.98467))
    series1.Points.Add(New SeriesPoint("USA", 9.63142))
    series1.Points.Add(New SeriesPoint("China", 9.59696))
    series1.Points.Add(New SeriesPoint("Brazil", 8.511965))
    series1.Points.Add(New SeriesPoint("Australia", 7.68685))
    series1.Points.Add(New SeriesPoint("India", 3.28759))
    series1.Points.Add(New SeriesPoint("Others", 81.2))

    ' Add the series to the chart.
    DoughnutChart3D.Series.Add(series1)

    ' Adjust the value numeric options of the series.
    series1.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent
    series1.PointOptions.ValueNumericOptions.Precision = 2

    ' Adjust the view-type-specific options of the series.
    CType(series1.View, Doughnut3DSeriesView).HoleRadiusPercent = 30
    CType(series1.View, Doughnut3DSeriesView).ExplodedPoints.Add(series1.Points(0))

    ' Access the diagram's options.
    CType(DoughnutChart3D.Diagram, SimpleDiagram3D).RotationType = RotationType.UseAngles
    CType(DoughnutChart3D.Diagram, SimpleDiagram3D).RotationAngleX = -35

    ' Add a title to the chart and hide the legend.
    Dim chartTitle1 As New ChartTitle()
    chartTitle1.Text = "3D Doughnut Chart"
    DoughnutChart3D.Titles.Add(chartTitle1)
    DoughnutChart3D.Legend.Visible = False

    ' Add the chart to the form.
    DoughnutChart3D.Dock = DockStyle.Fill
    Me.Controls.Add(DoughnutChart3D)
End Sub

See Also

Simple Diagram 3D