Chart Axis in PowerPoint
29 Jul 202624 minutes to read
Charts typically have two axes that are used to measure and categorize data.
- Horizontal axis (also known as category axis or x axis).
- Vertical axis (also known as value axis or y axis).
Using Presentation, you can customize the chart axes.
Set the Axis Title
The following code snippet illustrates how to set the title of an axis.
//Set the horizontal (category) axis title.
chart.PrimaryCategoryAxis.Title = "Products";
//Set the Vertical (value) axis title.
chart.PrimaryValueAxis.Title = "In Dollars";//Set the horizontal (category) axis title.
chart.PrimaryCategoryAxis.Title = "Products";
//Set the Vertical (value) axis title.
chart.PrimaryValueAxis.Title = "In Dollars";' Set the horizontal (category) axis title.
chart.PrimaryCategoryAxis.Title = "Products"
' Set the vertical (value) axis title.
chart.PrimaryValueAxis.Title = "In Dollars"Customize the Border
The following code snippet illustrates how to customize the border of the horizontal (category) and vertical (value) axes.
//Customize the horizontal category axis.
chart.PrimaryCategoryAxis.Border.LinePattern = OfficeChartLinePattern.CircleDot;
chart.PrimaryCategoryAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue;
chart.PrimaryCategoryAxis.Border.LineWeight = OfficeChartLineWeight.Hairline;
//Customize the vertical value axis.
chart.PrimaryValueAxis.Border.LinePattern = OfficeChartLinePattern.CircleDot;
chart.PrimaryValueAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue;
chart.PrimaryValueAxis.Border.LineWeight = OfficeChartLineWeight.Hairline;//Customize the horizontal category axis.
chart.PrimaryCategoryAxis.Border.LinePattern = OfficeChartLinePattern.CircleDot;
chart.PrimaryCategoryAxis.Border.LineColor = Color.Blue;
chart.PrimaryCategoryAxis.Border.LineWeight = OfficeChartLineWeight.Hairline;
//Customize the vertical value axis.
chart.PrimaryValueAxis.Border.LinePattern = OfficeChartLinePattern.CircleDot;
chart.PrimaryValueAxis.Border.LineColor = Color.Blue;
chart.PrimaryValueAxis.Border.LineWeight = OfficeChartLineWeight.Hairline;' Customize the horizontal category axis.
chart.PrimaryCategoryAxis.Border.LinePattern = OfficeChartLinePattern.CircleDot
chart.PrimaryCategoryAxis.Border.LineColor = Color.Blue
chart.PrimaryCategoryAxis.Border.LineWeight = OfficeChartLineWeight.Hairline
' Customize the vertical value axis.
chart.PrimaryValueAxis.Border.LinePattern = OfficeChartLinePattern.CircleDot
chart.PrimaryValueAxis.Border.LineColor = Color.Blue
chart.PrimaryValueAxis.Border.LineWeight = OfficeChartLineWeight.HairlineCustomize the Font
The following code snippet illustrates how to customize the font of the horizontal (category) and vertical (value) axes.
//Customize the horizontal category axis font.
chart.PrimaryCategoryAxis.Font.Color = OfficeKnownColors.Red;
chart.PrimaryCategoryAxis.Font.FontName = "Calibri";
chart.PrimaryCategoryAxis.Font.Bold = true;
chart.PrimaryCategoryAxis.Font.Size = 20;
//Customize the vertical value axis font.
chart.PrimaryValueAxis.Font.Color = OfficeKnownColors.Red;
chart.PrimaryValueAxis.Font.FontName = "Calibri";
chart.PrimaryValueAxis.Font.Bold = true;
chart.PrimaryValueAxis.Font.Size = 20;//Customize the vertical value axis font.
chart.PrimaryCategoryAxis.Font.Color = OfficeKnownColors.Red;
chart.PrimaryCategoryAxis.Font.FontName = "Calibri";
chart.PrimaryCategoryAxis.Font.Bold = true;
chart.PrimaryCategoryAxis.Font.Size = 20;
//Customize the vertical value axis font.
chart.PrimaryValueAxis.Font.Color = OfficeKnownColors.Red;
chart.PrimaryValueAxis.Font.FontName = "Calibri";
chart.PrimaryValueAxis.Font.Bold = true;
chart.PrimaryValueAxis.Font.Size = 20;' Customize the horizontal category axis font.
chart.PrimaryCategoryAxis.Font.Color = OfficeKnownColors.Red
chart.PrimaryCategoryAxis.Font.FontName = "Calibri"
chart.PrimaryCategoryAxis.Font.Bold = True
chart.PrimaryCategoryAxis.Font.Size = 20
' Customize the vertical value axis font.
chart.PrimaryValueAxis.Font.Color = OfficeKnownColors.Red
chart.PrimaryValueAxis.Font.FontName = "Calibri"
chart.PrimaryValueAxis.Font.Bold = True
chart.PrimaryValueAxis.Font.Size = 20Text Angle Rotation
The following code snippet illustrates how to set the text rotation angle for the axis title area.
//Axis title area text angle rotation.
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90;//Axis title area text angle rotation.
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90;' Axis title area text angle rotation.
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90Set the Maximum Value in an Axis
The following code snippet illustrates how to set the maximum value of an axis. The MinimumValue property can be set in the same way to define the lower bound.
//Maximum value in the axis.
chart.PrimaryValueAxis.MaximumValue = 14.0;//Maximum value in the axis.
chart.PrimaryValueAxis.MaximumValue = 14.0;' Maximum value in the axis.
chart.PrimaryValueAxis.MaximumValue = 14.0Set the Number Format in an Axis
The following code snippet illustrates how to set the number format of an axis.
//Number format for axis.
chart.PrimaryValueAxis.NumberFormat = "0.0";//Number format for axis.
chart.PrimaryValueAxis.NumberFormat = "0.0";' Number format for axis.
chart.PrimaryValueAxis.NumberFormat = "0.0"Manage Gridline Visibility
The following code snippet illustrates how to hide or show major and minor gridlines.
//Hiding major gridlines.
chart.PrimaryValueAxis.HasMajorGridLines = false;
//Showing minor gridlines.
chart.PrimaryValueAxis.HasMinorGridLines = true;//Hiding major gridlines.
chart.PrimaryValueAxis.HasMajorGridLines = false;
//Showing minor gridlines.
chart.PrimaryValueAxis.HasMinorGridLines = true;' Hiding major gridlines.
chart.PrimaryValueAxis.HasMajorGridLines = False
' Showing minor gridlines.
chart.PrimaryValueAxis.HasMinorGridLines = TrueResize the Axis Title Area
The following code snippet illustrates how to resize the axis title area.
//Manually resizing axis title area using Layout.
chart.PrimaryValueAxis.TitleArea.Layout.Left = 15;
chart.PrimaryValueAxis.TitleArea.Layout.Top = 20;
chart.PrimaryCategoryAxis.TitleArea.Layout.Left = 25;
chart.PrimaryCategoryAxis.TitleArea.Layout.Top = 20;
//Manually resizing axis title area using Manual Layout.
chart.PrimaryValueAxis.TitleArea.Layout.ManualLayout.Left = 0.04;
chart.PrimaryValueAxis.TitleArea.Layout.ManualLayout.Top = 0.34;
chart.PrimaryCategoryAxis.TitleArea.Layout.ManualLayout.Left = 0.38;
chart.PrimaryCategoryAxis.TitleArea.Layout.ManualLayout.Top = 0.95;//Manually resizing axis title area using Layout.
chart.PrimaryValueAxis.TitleArea.Layout.Left = 15;
chart.PrimaryValueAxis.TitleArea.Layout.Top = 20;
chart.PrimaryCategoryAxis.TitleArea.Layout.Left = 25;
chart.PrimaryCategoryAxis.TitleArea.Layout.Top = 20;
//Manually resizing axis title area using Manual Layout.
chart.PrimaryValueAxis.TitleArea.Layout.ManualLayout.Left = 0.04;
chart.PrimaryValueAxis.TitleArea.Layout.ManualLayout.Top = 0.34;
chart.PrimaryCategoryAxis.TitleArea.Layout.ManualLayout.Left = 0.38;
chart.PrimaryCategoryAxis.TitleArea.Layout.ManualLayout.Top = 0.95;' Manually resizing axis title area using Layout.
chart.PrimaryValueAxis.TitleArea.Layout.Left = 15
chart.PrimaryValueAxis.TitleArea.Layout.Top = 20
chart.PrimaryCategoryAxis.TitleArea.Layout.Left = 25
chart.PrimaryCategoryAxis.TitleArea.Layout.Top = 20
' Manually resizing axis title area using Manual Layout.
chart.PrimaryValueAxis.TitleArea.Layout.ManualLayout.Left = 0.04
chart.PrimaryValueAxis.TitleArea.Layout.ManualLayout.Top = 0.34
chart.PrimaryCategoryAxis.TitleArea.Layout.ManualLayout.Left = 0.38
chart.PrimaryCategoryAxis.TitleArea.Layout.ManualLayout.Top = 0.95Set the Secondary Axis
The following code snippet illustrates how to use secondary axis in chart.
//Use Secondary Axis.
chart.Series[1].UsePrimaryAxis = false;//Use Secondary Axis.
chart.Series[1].UsePrimaryAxis = false;' Use Secondary Axis for the second series.
chart.Series(1).UsePrimaryAxis = FalseSecondary Value Properties
The following code snippet illustrates how to customize the secondary value axis of a chart.
//MaxCross in axis.
chart.SecondaryValueAxis.IsMaxCross = true;
//Axis title.
chart.SecondaryValueAxis.Title = "Temperature,deg.F";
//Axis title area text angle rotation.
chart.SecondaryValueAxis.TitleArea.TextRotationAngle = 90;//MaxCross in axis.
chart.SecondaryValueAxis.IsMaxCross = true;
//Axis title.
chart.SecondaryValueAxis.Title = "Temperature,deg.F";
//Axis title area text angle rotation.
chart.SecondaryValueAxis.TitleArea.TextRotationAngle = 90;' Set MaxCross for the secondary value axis.
chart.SecondaryValueAxis.IsMaxCross = True
' Set the axis title for the secondary value axis.
chart.SecondaryValueAxis.Title = "Temperature,deg.F"
' Set the axis title area text rotation angle for the secondary value axis.
chart.SecondaryValueAxis.TitleArea.TextRotationAngle = 90Secondary Category Properties
The following code snippet illustrates how to customize secondary category axis in chart.
//MaxCross in axis.
chart.SecondaryCategoryAxis.IsMaxCross = true;
//Select border line color.
chart.SecondaryCategoryAxis.Border.LineColor = Syncfusion.Drawing.Color.Transparent;
//Select major tick mark option.
chart.SecondaryCategoryAxis.MajorTickMark = OfficeTickMark.TickMark_Cross;
//Select tick label position.
chart.SecondaryCategoryAxis.TickLabelPosition = OfficeTickLabelPosition.TickLabelPosition_None;//MaxCross in axis.
chart.SecondaryCategoryAxis.IsMaxCross = true;
//Select border line color.
chart.SecondaryCategoryAxis.Border.LineColor = Color.Transparent;
//Select major tick mark option.
chart.SecondaryCategoryAxis.MajorTickMark = OfficeTickMark.TickMark_Cross;
//Select tick label position.
chart.SecondaryCategoryAxis.TickLabelPosition = OfficeTickLabelPosition.TickLabelPosition_None;' Set MaxCross for the secondary category axis.
chart.SecondaryCategoryAxis.IsMaxCross = True
' Select the border line color and make it transparent.
chart.SecondaryCategoryAxis.Border.LineColor = Color.Transparent
' Select the major tick mark option as Cross.
chart.SecondaryCategoryAxis.MajorTickMark = OfficeTickMark.TickMark_Cross
' Select the tick label position as None.
chart.SecondaryCategoryAxis.TickLabelPosition = OfficeTickLabelPosition.TickLabelPosition_NoneThe complete code snippet illustrating the above options is shown below.
//Open an existing PowerPoint Presentation.
using (IPresentation pptxDoc = Presentation.Open("Data/Template.pptx"))
{
//Gets the first slide.
ISlide slide = pptxDoc.Slides[0];
//Gets the chart in slide.
IPresentationChart chart = slide.Shapes[0] as IPresentationChart;
//Set the horizontal (category) axis title.
chart.PrimaryCategoryAxis.Title = "Months";
//Set the Vertical (value) axis title.
chart.PrimaryValueAxis.Title = "Precipitation,in.";
//Set title for secondary value axis
chart.SecondaryValueAxis.Title = "Temperature,deg.F";
//Customize the horizontal category axis.
chart.PrimaryCategoryAxis.Border.LinePattern = OfficeChartLinePattern.Solid;
chart.PrimaryCategoryAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue;
chart.PrimaryCategoryAxis.Border.LineWeight = OfficeChartLineWeight.Hairline;
//Customize the vertical value axis.
chart.PrimaryValueAxis.Border.LinePattern = OfficeChartLinePattern.Solid;
chart.PrimaryValueAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue;
chart.PrimaryValueAxis.Border.LineWeight = OfficeChartLineWeight.Narrow;
//Customize the horizontal category axis font.
chart.PrimaryCategoryAxis.Font.Color = OfficeKnownColors.Red;
chart.PrimaryCategoryAxis.Font.FontName = "Calibri";
chart.PrimaryCategoryAxis.Font.Bold = true;
chart.PrimaryCategoryAxis.Font.Size = 8;
//Customize the vertical value axis font.
chart.PrimaryValueAxis.Font.Color = OfficeKnownColors.Red;
chart.PrimaryValueAxis.Font.FontName = "Calibri";
chart.PrimaryValueAxis.Font.Bold = true;
chart.PrimaryValueAxis.Font.Size = 8;
//Customize the secondary vertical value axis.
chart.SecondaryValueAxis.Border.LinePattern = OfficeChartLinePattern.Solid;
chart.SecondaryValueAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue;
chart.SecondaryValueAxis.Border.LineWeight = OfficeChartLineWeight.Narrow;
//Customize the secondary vertical value axis font.
chart.SecondaryValueAxis.Font.Color = OfficeKnownColors.Red;
chart.SecondaryValueAxis.Font.FontName = "Calibri";
chart.SecondaryValueAxis.Font.Bold = true;
chart.SecondaryValueAxis.Font.Size = 8;
//Axis title area text angle rotation.
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 270;
//Maximum value in the axis.
chart.PrimaryValueAxis.MaximumValue = 15;
chart.PrimaryValueAxis.MinimumValue = 0;
//Number format for axis.
chart.PrimaryValueAxis.NumberFormat = "0.0";
//Showing major gridlines.
chart.PrimaryValueAxis.HasMajorGridLines = true;
//Hiding minor gridlines.
chart.PrimaryValueAxis.HasMinorGridLines = false;
//Save the PowerPoint Presentation.
pptxDoc.Save("Result.pptx");
}//Open an existing PowerPoint Presentation.
using (IPresentation pptxDoc = Presentation.Open("Template.pptx"))
{
//Gets the first slide.
ISlide slide = pptxDoc.Slides[0];
//Gets the chart in slide.
IPresentationChart chart = slide.Shapes[0] as IPresentationChart;
//Set the horizontal (category) axis title.
chart.PrimaryCategoryAxis.Title = "Months";
//Set the Vertical (value) axis title.
chart.PrimaryValueAxis.Title = "Precipitation,in.";
//Set title for secondary value axis
chart.SecondaryValueAxis.Title = "Temperature,deg.F";
//Customize the horizontal category axis.
chart.PrimaryCategoryAxis.Border.LinePattern = OfficeChartLinePattern.Solid;
chart.PrimaryCategoryAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue;
chart.PrimaryCategoryAxis.Border.LineWeight = OfficeChartLineWeight.Hairline;
//Customize the vertical value axis.
chart.PrimaryValueAxis.Border.LinePattern = OfficeChartLinePattern.Solid;
chart.PrimaryValueAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue;
chart.PrimaryValueAxis.Border.LineWeight = OfficeChartLineWeight.Narrow;
//Customize the horizontal category axis font.
chart.PrimaryCategoryAxis.Font.Color = OfficeKnownColors.Red;
chart.PrimaryCategoryAxis.Font.FontName = "Calibri";
chart.PrimaryCategoryAxis.Font.Bold = true;
chart.PrimaryCategoryAxis.Font.Size = 8;
//Customize the vertical value axis font.
chart.PrimaryValueAxis.Font.Color = OfficeKnownColors.Red;
chart.PrimaryValueAxis.Font.FontName = "Calibri";
chart.PrimaryValueAxis.Font.Bold = true;
chart.PrimaryValueAxis.Font.Size = 8;
//Customize the secondary vertical value axis.
chart.SecondaryValueAxis.Border.LinePattern = OfficeChartLinePattern.Solid;
chart.SecondaryValueAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue;
chart.SecondaryValueAxis.Border.LineWeight = OfficeChartLineWeight.Narrow;
//Customize the secondary vertical value axis font.
chart.SecondaryValueAxis.Font.Color = OfficeKnownColors.Red;
chart.SecondaryValueAxis.Font.FontName = "Calibri";
chart.SecondaryValueAxis.Font.Bold = true;
chart.SecondaryValueAxis.Font.Size = 8;
//Axis title area text angle rotation.
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 270;
//Maximum value in the axis.
chart.PrimaryValueAxis.MaximumValue = 15;
chart.PrimaryValueAxis.MinimumValue = 0;
//Number format for axis.
chart.PrimaryValueAxis.NumberFormat = "0.0";
//Showing major gridlines.
chart.PrimaryValueAxis.HasMajorGridLines = true;
//Hiding minor gridlines.
chart.PrimaryValueAxis.HasMinorGridLines = false;
//Save the PowerPoint Presentation.
pptxDoc.Save("Result.pptx");
}' Open an existing PowerPoint Presentation.
Using pptxDoc As IPresentation = Presentation.Open("Template.pptx")
' Gets the first slide.
Dim slide As ISlide = pptxDoc.Slides(0)
' Gets the chart in the slide.
Dim chart As IPresentationChart = TryCast(slide.Shapes(0), IPresentationChart)
' Set the horizontal (category) axis title.
chart.PrimaryCategoryAxis.Title = "Months"
' Set the vertical (value) axis title.
chart.PrimaryValueAxis.Title = "Precipitation,in."
' Set title for the secondary value axis.
chart.SecondaryValueAxis.Title = "Temperature,deg.F"
' Customize the horizontal category axis.
chart.PrimaryCategoryAxis.Border.LinePattern = OfficeChartLinePattern.Solid
chart.PrimaryCategoryAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue
chart.PrimaryCategoryAxis.Border.LineWeight = OfficeChartLineWeight.Hairline
' Customize the vertical value axis.
chart.PrimaryValueAxis.Border.LinePattern = OfficeChartLinePattern.Solid
chart.PrimaryValueAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue
chart.PrimaryValueAxis.Border.LineWeight = OfficeChartLineWeight.Narrow
' Customize the horizontal category axis font.
chart.PrimaryCategoryAxis.Font.Color = OfficeKnownColors.Red
chart.PrimaryCategoryAxis.Font.FontName = "Calibri"
chart.PrimaryCategoryAxis.Font.Bold = True
chart.PrimaryCategoryAxis.Font.Size = 8
' Customize the vertical value axis font.
chart.PrimaryValueAxis.Font.Color = OfficeKnownColors.Red
chart.PrimaryValueAxis.Font.FontName = "Calibri"
chart.PrimaryValueAxis.Font.Bold = True
chart.PrimaryValueAxis.Font.Size = 8
' Customize the secondary vertical value axis.
chart.SecondaryValueAxis.Border.LinePattern = OfficeChartLinePattern.Solid
chart.SecondaryValueAxis.Border.LineColor = Syncfusion.Drawing.Color.Blue
chart.SecondaryValueAxis.Border.LineWeight = OfficeChartLineWeight.Narrow
' Customize the secondary vertical value axis font.
chart.SecondaryValueAxis.Font.Color = OfficeKnownColors.Red
chart.SecondaryValueAxis.Font.FontName = "Calibri"
chart.SecondaryValueAxis.Font.Bold = True
chart.SecondaryValueAxis.Font.Size = 8
' Axis title area text angle rotation.
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 270
' Maximum value in the axis.
chart.PrimaryValueAxis.MaximumValue = 15
chart.PrimaryValueAxis.MinimumValue = 0
' Number format for the axis.
chart.PrimaryValueAxis.NumberFormat = "0.0"
' Showing major gridlines.
chart.PrimaryValueAxis.HasMajorGridLines = True
' Hiding minor gridlines.
chart.PrimaryValueAxis.HasMinorGridLines = False
' Save the PowerPoint Presentation.
pptxDoc.Save("Result.pptx")
End UsingYou can download a complete working sample from GitHub.
Set the Category Label
The following code snippet illustrates how to set the category label.
//Set category labels.
chart.PrimaryCategoryAxis.CategoryLabels = chart.ChartData[2, 1, 11, 1];//Set category labels.
chart.PrimaryCategoryAxis.CategoryLabels = chart.ChartData[2, 1, 11, 1];chart.PrimaryCategoryAxis.CategoryLabels = chart.ChartData(2, 1, 11, 1)