Articles in this section
Category / Section

How to create the PowerPoint clustered column chart C# and VB.NET

4 mins read

This article explains how to create a clustered column chart in PowerPoint using Presentation library.

 

What is a clustered column chart

 

Clustered column chart plots the data in the discrete vertical rectangles.

 

 

 

Create clustered column chart in Excel

Clustered Column Chart Created using Presentation library

Steps to create the clustered column chart

 

  1. Initialize chart

 

Create a chart object by calling the slide.Charts.AddChart method and specify the chart type to OfficeChartType.Column_Clustered enum value.

 

//Create the chart
IPresentationChart chart = slide.Charts.AddChart(100, 10, 700, 500);
 
//Set chart type to Column_Clustered
chart.ChartType = OfficeChartType.Column_Clustered;

 

  1. Assign data and chart elements

 

Add the basic elements like chart title, data labels, and legend.

 

  • ChartTitle of chart object.
  • Set DataLabels via DefaultDataPoint.
  • Add CategoryLabels and Values
  • Set TRUE to chart’s HasLegend property to show the legend, else FALSE.

 

//Apply chart elements
//Set chart title
chart.ChartTitle = " Sales Report in Clustered Column Chart ";
 
//Set legend
chart.HasLegend = true;
              
//Set Datalabels, CategoryLabels, and Values
IOfficeChartSerie serie = chart.Series.Add();
serie.CategoryLabels = chart.ChartData[2,1,11,1];
serie.Values = chart.ChartData[2, 2, 6, 2];
serie.Bubbles = chart.ChartData[2, 3, 11, 3];
serie.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
serie.DataPoints.DefaultDataPoint.DataLabels.Position = OfficeDataLabelPosition.Bottom;

 

 

Applicable Properties of Clustered Column Chart

 

1. GapWidth (value should be between 0 and 500)

2. Overlap (value should be between -100 and 100)

3. IsVarycolor

 

NOTE: Applying other properties apart from the above list may throw exception or the changes will not be reflected in the output document because, those properties are not related to column/bar chart.

Note:

Applying other properties apart from the above list may throw exception or the changes will not be reflected in the output document because, those properties are not related to column/bar chart. 

 

 

Download Complete Sample

 

To know more about creating charts with various settings using Presentation library, please refer the documentation.

 

The following C#/ VB.NET complete code snippet shows the creation of clustered column chart using Presentation library.

 

C#

using Syncfusion.OfficeChart;
using Syncfusion.Presentation;
using System.IO;
 
namespace ChartSample
{
    class Program
    {
        static void Main(string[] args)
        {
            //Creates an instance of the IPresentation 
            using (IPresentation pptxDoc = Presentation.Create())
            {
                //Adds a blank slide to the Presentation
                ISlide slide = pptxDoc.Slides.Add(SlideLayoutType.Blank);
 
                //Adds chart to the slide with position and size
                IPresentationChart chart = slide.Charts.AddChart(100, 10, 700, 500);
                chart.ChartType = OfficeChartType.Column_Clustered;
 
                //Assign data
                AddChartData(chart);
                chart.IsSeriesInRows = false;
 
                //Apply chart elements
                //Set chart title
                chart.ChartTitle = "Sales Report in Clustered Column Chart";
 
                //Set Datalabels
                 IOfficeChartSerie serie1 = chart.Series.Add("Amount(in $)");
                //Sets the data range of chart series – start row, start column, end row, end column
                serie1.Values = chart.ChartData[2, 2, 6, 2];
 
                IOfficeChartSerie serie2 = chart.Series.Add("Count");
                //Sets the data range of chart series start row, start column, end row, end column
                serie2.Values = chart.ChartData[2, 3, 6, 3];
 
                //Sets the data range of the category axis
                chart.PrimaryCategoryAxis.CategoryLabels = chart.ChartData[2, 1, 6, 1];
 
                serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
                serie2.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
                serie1.DataPoints.DefaultDataPoint.DataLabels.Position = OfficeDataLabelPosition.Outside;
                serie2.DataPoints.DefaultDataPoint.DataLabels.Position = OfficeDataLabelPosition.Outside;
 
                //Set legend
                chart.HasLegend = true;
                chart.Legend.Position = OfficeLegendPosition.Bottom;
 
                //Saving and closing the presentation
                Stream stream = File.Create("Output.pptx");
                pptxDoc.Save(stream);
            }
        }
 
         /// <summary>
        /// Set the values for the chart
        /// </summary>
        /// <param name="chart">Represent the instance of the Presentation chart</param>
 
        private static void AddChartData(IPresentationChart chart)
        {
            //Set the value for chart data
            chart.ChartData.SetValue(1,1,"Items");
            chart.ChartData.SetValue(1, 2, "Amount(in $)");
            chart.ChartData.SetValue(1, 3, "Count");
 
            chart.ChartData.SetValue(2, 1, "Beverages");
            chart.ChartData.SetValue(2, 2, 2776);
            chart.ChartData.SetValue(2, 3, 925);
 
            chart.ChartData.SetValue(3, 1, "Condiments");
            chart.ChartData.SetValue(3, 2, 1077);
            chart.ChartData.SetValue(3, 3, 378);
 
            chart.ChartData.SetValue(4, 1, "Confections");
            chart.ChartData.SetValue(4, 2, 2287);
            chart.ChartData.SetValue(4, 3, 880);
 
            chart.ChartData.SetValue(5, 1, "Dairy Products");
            chart.ChartData.SetValue(5, 2, 1368);
            chart.ChartData.SetValue(5, 3, 581);
 
            chart.ChartData.SetValue(6, 1, "Grains/Cereals");
            chart.ChartData.SetValue(6, 2, 3325);
            chart.ChartData.SetValue(6, 3, 189);
        }
    }
}
 

 

VB

Imports System.IO
Imports Syncfusion.OfficeChart
Imports Syncfusion.Presentation
 
Namespace ChartSample
 
    Class Program
 
        Public Shared Sub Main(ByVal args As String())
            'Creates an instance of the IPresentation 
            Dim pptxDoc As IPresentation = Presentation.Create()
            'Adds a blank slide to the Presentation
            Dim slide As ISlide = pptxDoc.Slides.Add(SlideLayoutType.Blank)
 
            'Adds chart to the slide with position and size
            Dim chart As IPresentationChart = slide.Charts.AddChart(100, 10, 700, 500)
            chart.ChartType = OfficeChartType.Column_Clustered
 
            'Assign data
            AddChartData(chart)
            chart.IsSeriesInRows = False
 
            'Apply chart elements
            'Set chart title
            chart.ChartTitle = "Sales Report in Clustered Column Chart"
 
            'Set Datalabels
            Dim serie1 As IOfficeChartSerie = chart.Series.Add("Amount(in $)")
            'Sets the data range of chart series start row, start column, end row, end column
            serie1.Values = chart.ChartData(2, 2, 6, 2)
 
            Dim serie2 As IOfficeChartSerie = chart.Series.Add("Count")
            'Sets the data range of chart series – start row, start column, end row, end column
            serie2.Values = chart.ChartData(2, 3, 6, 3)
 
            'Sets the data range of the category axis
            chart.PrimaryCategoryAxis.CategoryLabels = chart.ChartData(2, 1, 6, 1) 
 
            serie1.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
            serie2.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
            serie1.DataPoints.DefaultDataPoint.DataLabels.Position = OfficeDataLabelPosition.Outside
            serie2.DataPoints.DefaultDataPoint.DataLabels.Position = OfficeDataLabelPosition.Outside
 
            'Set legend
            chart.HasLegend = True
            chart.Legend.Position = OfficeLegendPosition.Bottom
 
            'Saving and closing the presentation
            Dim stream As Stream = File.Create("Output.pptx")
            pptxDoc.Save(stream) 
    End Sub
 
      ''' <summary>
      ''' Set the values for the chart
      ''' </summary>
      ''' <param name="chart">Represent the instance of the Presentation chart</param>
 
    Sub AddChartData(chart As IPresentationChart)
        'Set the value for chart data
        chart.ChartData.SetValue(1, 1, "Items")
        chart.ChartData.SetValue(1, 2, "Amount(in $)")
        chart.ChartData.SetValue(1, 3, "Count")
 
        chart.ChartData.SetValue(2, 1, "Beverages")
        chart.ChartData.SetValue(2, 2, 2776)
        chart.ChartData.SetValue(2, 3, 925)
 
        chart.ChartData.SetValue(3, 1, "Condiments")
        chart.ChartData.SetValue(3, 2, 1077)
        chart.ChartData.SetValue(3, 3, 378)
 
        chart.ChartData.SetValue(4, 1, "Confections")
        chart.ChartData.SetValue(4, 2, 2287)
        chart.ChartData.SetValue(4, 3, 880)
 
        chart.ChartData.SetValue(5, 1, "Dairy Products")
        chart.ChartData.SetValue(5, 2, 1368)
        chart.ChartData.SetValue(5, 3, 581)
 
        chart.ChartData.SetValue(6, 1, "Grains/Cereals")
        chart.ChartData.SetValue(6, 2, 3325)
        chart.ChartData.SetValue(6, 3, 189)
     End Sub
  End Class
End Namespace

 

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied