How to create a bubble chart in a Word document using C# and VB.NET
What is a bubble chart?
A bubble chart represents data points with bubbles along with an additional dimension of the data: the size of the 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 to z (size) values.
Bubble chart created using Word library (Essential® DocIO)
Steps to create a bubble chart in a Word document using the DocIO library:
Create a chart object by calling the paragraph.AppendChart(446, 270) method and specify the chart type as OfficeChartType.Bubble enum value.
// Creates and appends chart to the paragraph. WChart chart = paragraph.AppendChart(446, 270); // Sets chart type. chart.ChartType = OfficeChartType.Bubble;
- 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 the 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
- SizeRepresents
- BubbleScale
- ShowNegativeBubbles
- Applying properties apart from the mentioned list might throw an exception or the changes will not be reflected in the output document because those properties are not related to bubble charts.
- Bubbles with negative size are said to be negative bubbles.
The following C# and VB.NET complete code snippet shows the creation of s bubble chart using the Word library.
C#
using Syncfusion.DocIO; using Syncfusion.DocIO.DLS; using Syncfusion.OfficeChart; using System.IO; namespace ChartSample { class Program { static void Main(string[] args) { // Loads the template document. WordDocument document = new WordDocument(); // Adds section to the document. IWSection sec = document.AddSection(); // Adds paragraph to the section. IWParagraph paragraph = sec.AddParagraph(); // Creates and appends chart to the paragraph. WChart chart = paragraph.AppendChart(446, 270); // Sets 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; // Saves and closes the document. document.Save("sample.docx", FormatType.Docx); document.Close(); } /// <summary> /// Set the values for the chart. /// </summary> /// <param name="chart">Represents the instance of the WordDocument chart</param> private static void SetChartData(WChart 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.DocIO Imports Syncfusion.DocIO.DLS Imports Syncfusion.OfficeChart Namespace ChartSample Class Program Private Shared Sub Main(ByVal args As String()) 'Loads the template document. Dim document As WordDocument = New WordDocument() ' Adds section to the document. Dim sec As IWSection = document.AddSection() 'Adds paragraph to the section. Dim paragraph As IWParagraph = sec.AddParagraph() 'Creates and appends chart to the paragraph. Dim chart As WChart = paragraph.AppendChart(446, 270) 'Sets 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 'Saves and closes the document. document.Save("sample.docx", FormatType.Docx) document.Close() End Sub ''' <summary> ''' Set the values for the chart. ''' </summary> ''' <paramn ame="chart">Represents the instance of the WordDocument chart</param> Private Shared Sub SetChartData(ByVal chart As WChart) 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
A complete working example of how to create a bubble chart in Word document in C# can be downloaded from Create-bubble-chart-in-Word.zip.
To learn more about creating charts with various settings using Syncfusion® Word library (Essential® DocIO), please refer the documentation.