Hi,
I am using below code to generate pie chart, but leaderlines are not showing and chart label sits just outside the pie chart. Kindly help:
ISlide slides = pres.Slides[1];
// Add chart with default data
IChart chart = slides.Shapes.AddChart(ChartType.Pie, 247, 136, 375, 375);
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;
// Set first series to Show Values
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;
// Setting the index of chart data sheet
int defaultWorksheetIndex = 0;
// Getting the chart data worksheet
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;
// Delete default generated series and categories
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
// Adding new categories
chart.ChartData.Categories.Add(fact.GetCell(0, 1, 0, "Category1"));
chart.ChartData.Categories.Add(fact.GetCell(0, 2, 0, "Category2"));
chart.ChartData.Categories.Add(fact.GetCell(0, 3, 0, "Category3"));
IChartSeries series = chart.ChartData.Series.Add(fact.GetCell(0, 0, 1), chart.Type);
// Now populating series data
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 30));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 40));
series.DataPoints.AddDataPointForPieSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));
chart.ChartData.SeriesGroups[0].IsColorVaried = true;
IChartDataPoint point = series.DataPoints[0];
point.Format.Fill.FillType = FillType.Solid;
point.Format.Fill.SolidFillColor.Color = Color.Green;
point.Format.Line.FillFormat.FillType = FillType.Solid;
point.Format.Line.FillFormat.SolidFillColor.Color = Color.Green;
point.Format.Line.Width = 1.0;
point.Format.Line.Style = LineStyle.ThinThin;
point.Format.Line.DashStyle = LineDashStyle.Solid;
IChartDataPoint point1 = series.DataPoints[1];
point1.Format.Fill.FillType = FillType.Solid;
point1.Format.Fill.SolidFillColor.Color = Color.DarkGreen;
// Setting Sector border
point1.Format.Line.FillFormat.FillType = FillType.Solid;
point1.Format.Line.FillFormat.SolidFillColor.Color = Color.DarkGreen;
point1.Format.Line.Width = 1.0;
point1.Format.Line.Style = LineStyle.ThinThin;
point1.Format.Line.DashStyle = LineDashStyle.Solid;
IChartDataPoint point2 = series.DataPoints[2];
point2.Format.Fill.FillType = FillType.Solid;
point2.Format.Fill.SolidFillColor.Color = Color.DarkOliveGreen;
// Setting Sector border
point2.Format.Line.FillFormat.FillType = FillType.Solid;
point2.Format.Line.FillFormat.SolidFillColor.Color = Color.DarkOliveGreen;
point2.Format.Line.Width = 1.0;
point2.Format.Line.Style = LineStyle.ThinThin;
point2.Format.Line.DashStyle = LineDashStyle.Solid;
// Create custom labels for each of categories for new series
IDataLabel lbl1 = series.DataPoints[0].Label;
// lbl.ShowCategoryName = true;
//lbl1.DataLabelFormat.ShowValue = true;
lbl1.DataLabelFormat.ShowPercentage = true;
lbl1.DataLabelFormat.ShowCategoryName = true;
lbl1.DataLabelFormat.TextFormat.PortionFormat.FontHeight = 8;
lbl1.DataLabelFormat.Position = LegendDataLabelPosition.OutsideEnd;
IDataLabel lbl2 = series.DataPoints[1].Label;
lbl2.DataLabelFormat.ShowPercentage = true;
lbl2.DataLabelFormat.ShowCategoryName = true;
lbl2.DataLabelFormat.TextFormat.PortionFormat.FontHeight = 8;
lbl2.DataLabelFormat.Position = LegendDataLabelPosition.OutsideEnd;
IDataLabel lbl3 = series.DataPoints[2].Label;
//lbl3.DataLabelFormat.ShowSeriesName = true;
lbl3.DataLabelFormat.ShowPercentage = true;
lbl3.DataLabelFormat.ShowCategoryName = true;
lbl3.DataLabelFormat.TextFormat.PortionFormat.FontHeight = 8;
lbl3.DataLabelFormat.Position = LegendDataLabelPosition.OutsideEnd;
// Showing Leader Lines for Chart
series.Labels.DefaultDataLabelFormat.ShowValue = true;
series.Labels.DefaultDataLabelFormat.ShowLeaderLines = true;
chart.HasLegend = false;
// Setting Rotation Angle for Pie Chart Sectors
chart.ChartData.SeriesGroups[0].FirstSliceAngle = 180;