Articles in this section
Category / Section

How to create the PowerPoint bubble chart in C# and VB.NET?

4 mins read

This article explains how to create a bubble chart in WinForms PowerPoint using Presentation library.

 

What is a bubble chart

 

A bubble chart represents data points with bubbles along with an additional dimension of the data, the size of bubbles. Like a scatter chart, a bubble chart does not use a category axis. Both x (horizontal) and y (vertical) axes are value axes in addition with z (size) values.

 

Create bubble chart in Excel in WinForms PowerPoint

                Bubble chart created using Presentation library

 

 

Steps to create bubble chart in PowerPoint using Presentation library.

 

  1. Initialize chart

 

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

 

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

 

  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 = "Bubble Chart";
 
//Set legend
chart.HasLegend = false;
              
//Set Datalabels, CategoryLabels, and Values
IOfficeChartSerie serie = chart.Series.Add();
serie.CategoryLabels = chart.ChartData[2,1,11,1];
serie.Values = chart.ChartData[2, 2, 11, 2];
serie.Bubbles = chart.ChartData[2, 3, 11, 3];
serie.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
serie.DataPoints.DefaultDataPoint.DataLabels.Position = OfficeDataLabelPosition.Center; 

 

Applicable properties of bubble chart

 

 

NOTE:

  • Applying properties apart from the mentioned list might throw exception or the changes will not be reflected in the output document because those properties are not related to bubble chart.
  • Bubbles with negative size are said to be the negative bubbles.

 

Download Complete Sample

 

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

 

The following C# and VB.NET complete code snippet shows the creation of bubble chart using Presentation library.

 

C#

 

using Syncfusion.Presentation;
using Syncfusion.OfficeChart;
using System.IO;
 
namespace ChartSample
{
    class Program
    {
        static void Main(string[] args)
        {
            //Create an instance for PowerPoint
            using (IPresentation pptxDoc = Presentation.Create())
            {
                //Add a blank slide to 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);
                //Set the chart type
                chart.ChartType = OfficeChartType.Bubble;
 
                //Apply chart elements
                //Set chart title
                chart.ChartTitle = "Bubble Chart";
                //Set data to the chart
                SetChartData(chart);
 
                //Set Datalabels, CategoryLabels, and Values
                IOfficeChartSerie serie = chart.Series.Add();
                serie.CategoryLabels = chart.ChartData[2, 1, 11, 1];
                serie.Values = chart.ChartData[2, 2, 11, 2];
                serie.Bubbles = chart.ChartData[2, 3, 11, 3];
                serie.DataPoints.DefaultDataPoint.DataLabels.IsValue = true;
                serie.DataPoints.DefaultDataPoint.DataLabels.Position = OfficeDataLabelPosition.Center;
 
                //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 SetChartData(IPresentationChart chart)
        {
            chart.ChartData.SetValue(1, 1, "X");
            chart.ChartData.SetValue(2, 1, -10);
            chart.ChartData.SetValue(3, 1, -20);
            chart.ChartData.SetValue(4, 1, -30);
            chart.ChartData.SetValue(5, 1, -40);
            chart.ChartData.SetValue(6, 1, -50);
            chart.ChartData.SetValue(7, 1, 10);
            chart.ChartData.SetValue(8, 1, 20);
            chart.ChartData.SetValue(9, 1, 30);
            chart.ChartData.SetValue(10, 1, 40);
            chart.ChartData.SetValue(11, 1, 50);
            chart.ChartData.SetValue(1, 2, "Y");
            chart.ChartData.SetValue(2, 2, -100);
            chart.ChartData.SetValue(3, 2, -200);
            chart.ChartData.SetValue(4, 2, -300);
            chart.ChartData.SetValue(5, 2, -400);
            chart.ChartData.SetValue(6, 2, -500);
            chart.ChartData.SetValue(7, 2, 100);
            chart.ChartData.SetValue(8, 2, 200);
            chart.ChartData.SetValue(9, 2, 300);
            chart.ChartData.SetValue(10, 2, 400);
            chart.ChartData.SetValue(11, 2, 500);
            chart.ChartData.SetValue(1, 3, "Size");
            chart.ChartData.SetValue(2, 3, 1);
            chart.ChartData.SetValue(3, 3, -1);
            chart.ChartData.SetValue(4, 3, 1);
            chart.ChartData.SetValue(5, 3, -1);
            chart.ChartData.SetValue(6, 3, 1);
            chart.ChartData.SetValue(7, 3, -1);
            chart.ChartData.SetValue(8, 3, 1);
            chart.ChartData.SetValue(9, 3, -1);
            chart.ChartData.SetValue(10, 3, 1);
            chart.ChartData.SetValue(11, 3, -1);
        }
    }
}
 

 

VB

Imports Syncfusion.Presentation
Imports Syncfusion.OfficeChart
Imports System.IO
 
Namespace ChartSample
 
    Class Program
 
        Public Shared Sub Main(ByVal args() As String)
            'Create an instance for PowerPoint
            Dim pptxDoc As IPresentation = Presentation.Create()
            'Add a blank slide to 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)
            'Set he chart type
            chart.ChartType = OfficeChartType.Bubble
            'Apply chart elements
            'Set chart title
            chart.ChartTitle = "Bubble Chart"
            'Set data to the chart
            Program.SetChartData(chart)
            'Set Datalabels, CategoryLabels, and Values
            Dim serie As IOfficeChartSerie = chart.Series.Add()
            serie.CategoryLabels = chart.ChartData(2, 1, 11, 1)
            serie.Values = chart.ChartData(2, 2, 11, 2)
            serie.Bubbles = chart.ChartData(2, 3, 11, 3)
            serie.DataPoints.DefaultDataPoint.DataLabels.IsValue = True
            serie.DataPoints.DefaultDataPoint.DataLabels.Position = OfficeDataLabelPosition.Center
            '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>
        Private Shared Sub SetChartData(ByVal chart As IPresentationChart)
            chart.ChartData.SetValue(1, 1, "X")
            chart.ChartData.SetValue(2, 1, -10)
            chart.ChartData.SetValue(3, 1, -20)
            chart.ChartData.SetValue(4, 1, -30)
            chart.ChartData.SetValue(5, 1, -40)
            chart.ChartData.SetValue(6, 1, -50)
            chart.ChartData.SetValue(7, 1, 10)
            chart.ChartData.SetValue(8, 1, 20)
            chart.ChartData.SetValue(9, 1, 30)
            chart.ChartData.SetValue(10, 1, 40)
            chart.ChartData.SetValue(11, 1, 50)
            chart.ChartData.SetValue(1, 2, "Y")
            chart.ChartData.SetValue(2, 2, -100)
            chart.ChartData.SetValue(3, 2, -200)
            chart.ChartData.SetValue(4, 2, -300)
            chart.ChartData.SetValue(5, 2, -400)
            chart.ChartData.SetValue(6, 2, -500)
            chart.ChartData.SetValue(7, 2, 100)
            chart.ChartData.SetValue(8, 2, 200)
            chart.ChartData.SetValue(9, 2, 300)
            chart.ChartData.SetValue(10, 2, 400)
            chart.ChartData.SetValue(11, 2, 500)
            chart.ChartData.SetValue(1, 3, "Size")
            chart.ChartData.SetValue(2, 3, 1)
            chart.ChartData.SetValue(3, 3, -1)
            chart.ChartData.SetValue(4, 3, 1)
            chart.ChartData.SetValue(5, 3, -1)
            chart.ChartData.SetValue(6, 3, 1)
            chart.ChartData.SetValue(7, 3, -1)
            chart.ChartData.SetValue(8, 3, 1)
            chart.ChartData.SetValue(9, 3, -1)
            chart.ChartData.SetValue(10, 3, 1)
            chart.ChartData.SetValue(11, 3, -1)
        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