Thanks for inquiring Aspose.Slides.
I have observed all of your requirements and like to share that Aspose.Slides fulfills all the requirements shared by you except one with setting angle of rotation for category axis text. An issue with ID SLIDESNET-33799 has already been added to provide this feature and we will notify you once the feature will be available.
For rest of your requirements, please use the sample code below. I have shared an extensive sample code encompassing your listed requirements along with many other chart formatting features. I also like to add the chart markers are set for series and they are managed in series using Aspose.Slides as against setting them in Legends using Aspose.Cells.
public static void MangeLineChartProperties()
MemoryStream ms = new MemoryStream();
PresentationEx pres = new PresentationEx();
SlideEx slide = pres.Slides[0];
ChartEx chart = slide.Shapes.AddChart(ChartTypeEx.LineWithMarkers, 50, 50, 500, 400);
//Setting Major and minor grid lines format for value axis
chart.ValueAxis.MajorGridLines.FillFormat.FillType = FillTypeEx.Solid;
chart.ValueAxis.MajorGridLines.FillFormat.SolidFillColor.Color = Color.Blue;
chart.ValueAxis.MajorGridLines.Width = 5;
chart.ValueAxis.MinorGridLines.FillFormat.FillType = FillTypeEx.Solid;
chart.ValueAxis.MinorGridLines.FillFormat.SolidFillColor.Color = Color.Red;
chart.ValueAxis.MinorGridLines.Width = 3;
chart.ValueAxis.SourceLinked = false;
// chart.ValueAxis.DisplayUnit = DisplayUnitType.Millions;
chart.ValueAxis.DisplayUnit = DisplayUnitType.Thousands;
chart.ValueAxis.NumberFormat = “0.0%”;
//Setting chart maximum, minimum values
chart.ValueAxis.IsAutomaticMajorUnit = false;
chart.ValueAxis.IsAutomaticMaxValue = false;
chart.ValueAxis.IsAutomaticMinorUnit = false;
chart.ValueAxis.IsAutomaticMinValue = false;
chart.ValueAxis.MaxValue = 15f;
chart.ValueAxis.MinValue = -2f;
chart.ValueAxis.MinorUnit = 0.5f;
chart.ValueAxis.MajorUnit = 2.0f;
//Setting Major and minor grid lines format for Category axis
chart.CategoryAxis.MajorGridLines.FillFormat.FillType = FillTypeEx.Solid;
chart.CategoryAxis.MajorGridLines.FillFormat.SolidFillColor.Color = Color.Green;
chart.CategoryAxis.MajorGridLines.Width = 5;
chart.CategoryAxis.MinorGridLines.FillFormat.FillType = FillTypeEx.Solid;
chart.CategoryAxis.MinorGridLines.FillFormat.SolidFillColor.Color = Color.Yellow;
chart.CategoryAxis.MinorGridLines.Width = 3;
//Setting Category Axis Text Properties
TextFrameEx txt = chart.CategoryAxis.TextProperties;
txt.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontBold = NullableBool.True;
txt.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 20;
txt.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontItalic = NullableBool.True;
txt.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillTypeEx.Solid; ;
txt.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Blue;
//Setting Value Axis Text Properties
TextFrameEx txt2 = chart.ValueAxis.TextProperties;
txt2.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontBold = NullableBool.True;
txt2.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 20;
txt2.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontItalic = NullableBool.True;
txt2.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillTypeEx.Solid; ;
txt2.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Blue;
//Setting Value Axis title
TextFrameEx title = chart.ValueAxis.Title.Text;
ParagraphEx text = new ParagraphEx();
text.Text = “Mudassir Fayyaz”;
text.Portions[0].PortionFormat.FontHeight = 20;
text.Portions[0].PortionFormat.FillFormat.FillType = FillTypeEx.Solid;
text.Portions[0].PortionFormat.FillFormat.SolidFillColor.Color = Color.Green;
title.Paragraphs.Add(text);
chart.ValueAxis.HasTitle = true;
//Setting Legends Text Properties
TextFrameEx txt3 = chart.Legend.TextProperties;
txt3.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontBold = NullableBool.True;
txt3.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 20;
txt3.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontItalic = NullableBool.True;
txt3.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillTypeEx.Solid; ;
txt3.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.Blue;
//Set the Font for the Portion
txt3.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.LatinFont = new FontDataEx(“Times New Roman”);
chart.ValueAxis.AxisLine.Width = 10;
chart.ValueAxis.AxisLine.FillFormat.FillType = FillTypeEx.Solid;
chart.ValueAxis.AxisLine.FillFormat.SolidFillColor.Color = Color.Red;
LegendEx legend = chart.Legend;
legend.Format.Line.FillFormat.FillType = FillTypeEx.Solid;
legend.Format.Line.FillFormat.SolidFillColor.Color = Color.Red;
legend.Format.Line.Style = LineStyleEx.ThickThin;
legend.Format.Line.Width = 5;
legend.Format.Line.DashStyle = LineDashStyleEx.DashDot;
chart.SecondValueAxis.IsVisible = true;
chart.SecondValueAxis.AxisLine.Style = LineStyleEx.ThickBetweenThin;
chart.SecondValueAxis.AxisLine.Width = 20;
//Setting chart back wall color
chart.ChartFormat.Fill.FillType = FillTypeEx.Solid;
chart.ChartFormat.Fill.SolidFillColor.Color = Color.Orange;
//Setting Plot area color
chart.PlotArea.Format.Fill.FillType = FillTypeEx.Solid;
chart.PlotArea.Format.Fill.SolidFillColor.Color = Color.LightCyan;
//working with chart series
ChartSeriesEx series = chart.ChartData.Series[0];
//Setting series marker and its properties for series
series.MarkerSymbol = MarkerStyleTypeEx.Diamond;
series.MarkerFill.Fill.FillType = FillTypeEx.Solid;
series.MarkerFill.Fill.SolidFillColor.Color = Color.RosyBrown;
series.MarkerFill.Line.Width= 2;
series.MarkerFill.Line.FillFormat.FillType=FillTypeEx.Solid;
series.MarkerFill.Line.FillFormat.SolidFillColor.Color = Color.Chocolate;
//Setting Line format for chart series
series.Format.Line.DashStyle = LineDashStyleEx.Dot;
series.Format.Line.Style = LineStyleEx.ThickThin;
series.Format.Line.Width = 5d;
series.Format.Fill.FillType = FillTypeEx.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Black;
//Plotting series on secondary axis
series.PlotOnSecondAxis = true;
//Adding Series label and its properties
DataLabelEx label = new DataLabelEx(series);
series.Labels.Add(label);
series.Labels.ShowValue = true;
series.Labels.ShowSeriesName = false;
series.Labels.ShowCategoryName = false;
series.Labels.LinkedSource = false;
series.Labels.NumberFormat = “0.0%”;
series.Labels.TextProperties.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 20;
series.Labels.TextProperties.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontBold = NullableBool.True;
series.Labels.TextProperties.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontItalic = NullableBool.True;
series.Labels.TextProperties.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FillFormat.FillType = FillTypeEx.Solid;
series.Labels.TextProperties.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FillFormat.SolidFillColor.Color = Color.DarkGreen;
pres.Write(“D:\Aspose Data\AxisValue.pptx”);
Please share, if I may help you further in this regard.