A Scatter (X Y) Chart has two value axes – X value axis and Y value axis. It combines X and Y values into single data points and shows them in irregular intervals, or clusters. This article will show you how to create scatter chart in PowerPoint using Spire.Presentation with C#.
Step 1: Create a Presentation object.
Presentation presentation = new Presentation();
Step 2: Add a "Scatter with Smooth Lines and Markers" chart to the first slide, and set the chart title.
IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.ScatterSmoothLinesAndMarkers, new RectangleF(40, 80, 550, 320), false); chart.ChartTitle.TextProperties.Text = "Scatter Chart"; chart.ChartTitle.TextProperties.IsCentered = true; chart.ChartTitle.Height = 20; chart.HasTitle = true;
Step 3: Write data to the chart data.
Double[] xdata = new Double[] { 1.0, 2.4, 5.0, 8.9 }; Double[] ydata = new Double[] { 5.3, 15.2, 6.7, 8 }; chart.ChartData[0, 0].Text = "X-Values"; chart.ChartData[0, 1].Text = "Y-Values"; for (Int32 i = 0; i < xdata.Length; ++i) { chart.ChartData[i + 1, 0].Value = xdata[i]; chart.ChartData[i + 1, 1].Value = ydata[i]; }
Step 4: Set up the data source of the X values, the Y values, and the series label.
chart.Series.SeriesLabel = chart.ChartData["B1", "B1"]; chart.Series[0].XValues= chart.ChartData["A2", "A5"]; chart.Series[0].YValues = chart.ChartData["B2", "B5"];
Step 5: Add and display the data labels in the chart.
for (int i = 0; i < 4; i++) { ChartDataLabel dataLabel = chart.Series[0].DataLabels.Add(); dataLabel.LabelValueVisible = true; }
Step 6: Set the axis titles.
chart.PrimaryValueAxis.HasTitle = true; chart.PrimaryValueAxis.Title.TextProperties.Text = "X-Axis Title"; chart.SecondaryValueAxis.HasTitle = true; chart.SecondaryValueAxis.Title.TextProperties.Text = "Y-Axis Title";
Step 7: Format the gridlines.
chart.SecondaryValueAxis.MajorGridTextLines.FillType = FillFormatType.Solid; chart.SecondaryValueAxis.MajorGridTextLines.Style = TextLineStyle.ThinThin; chart.SecondaryValueAxis.MajorGridTextLines.SolidFillColor.Color = Color.Gray; chart.PrimaryValueAxis.MajorGridTextLines.FillType = FillFormatType.None;
Step 8: Format the outline.
chart.Series[0].Line.FillType = FillFormatType.Solid; chart.Series[0].Line.Width = 0.1f; chart.Series[0].Line.SolidFillColor.Color = Color.RoyalBlue;
Step 9: Save the file.
presentation.SaveToFile("ScatterChart.pptx", FileFormat.Pptx2010);
Output:
Full Code:
using Spire.Presentation; using Spire.Presentation.Charts; using Spire.Presentation.Drawing; using System; using System.Drawing; namespace CreateScatterChart { class Program { static void Main(string[] args) { Presentation presentation = new Presentation(); IChart chart = presentation.Slides[0].Shapes.AppendChart(ChartType.ScatterSmoothLinesAndMarkers, new RectangleF(40, 80, 550, 320), false); chart.ChartTitle.TextProperties.Text = "Scatter Chart"; chart.ChartTitle.TextProperties.IsCentered = true; chart.ChartTitle.Height = 20; chart.HasTitle = true; Double[] xdata = new Double[] { 1.0, 2.4, 5.0, 8.9 }; Double[] ydata = new Double[] { 5.3, 15.2, 6.7, 8 }; chart.ChartData[0, 0].Text = "X-Values"; chart.ChartData[0, 1].Text = "Y-Values"; for (Int32 i = 0; i < xdata.Length; ++i) { chart.ChartData[i + 1, 0].Value = xdata[i]; chart.ChartData[i + 1, 1].Value = ydata[i]; } chart.Series.SeriesLabel = chart.ChartData["B1", "B1"]; chart.Series[0].XValues = chart.ChartData["A2", "A5"]; chart.Series[0].YValues = chart.ChartData["B2", "B5"]; for (int i = 0; i < 4; i++) { ChartDataLabel dataLabel = chart.Series[0].DataLabels.Add(); dataLabel.LabelValueVisible = true; } chart.PrimaryValueAxis.HasTitle = true; chart.PrimaryValueAxis.Title.TextProperties.Text = "X-Axis Title"; chart.SecondaryValueAxis.HasTitle = true; chart.SecondaryValueAxis.Title.TextProperties.Text = "Y-Axis Title"; chart.SecondaryValueAxis.MajorGridTextLines.FillType = FillFormatType.Solid; chart.SecondaryValueAxis.MajorGridTextLines.Style = TextLineStyle.ThinThin; chart.SecondaryValueAxis.MajorGridTextLines.SolidFillColor.Color = Color.Gray; chart.PrimaryValueAxis.MajorGridTextLines.FillType = FillFormatType.None; chart.Series[0].Line.FillType = FillFormatType.Solid; chart.Series[0].Line.Width = 0.1f; chart.Series[0].Line.SolidFillColor.Color = Color.RoyalBlue; presentation.SaveToFile("ScatterChart.pptx", FileFormat.Pptx2010); } } }