ChartSeriesDataLabels Property |
Namespace: Aspose.Words.Drawing.Charts
public void ChartDataLabels() { Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); // Use a document builder to insert a bar chart Shape chartShape = builder.InsertChart(ChartType.Line, 400, 300); // Get the chart object from the containing shape Chart chart = chartShape.Chart; // The chart already contains demo data comprised of 3 series each with 4 categories Assert.AreEqual(3, chart.Series.Count); Assert.AreEqual("Series 1", chart.Series[0].Name); // Apply data labels to every series in the graph foreach (ChartSeries series in chart.Series) { ApplyDataLabels(series, 4, "000.0", ", "); Assert.AreEqual(4, series.DataLabels.Count); } // Get the enumerator for a data label collection using (IEnumerator<ChartDataLabel> enumerator = chart.Series[0].DataLabels.GetEnumerator()) { // And use it to go over all the data labels in one series and change their separator while (enumerator.MoveNext()) { Assert.AreEqual(", ", enumerator.Current.Separator); enumerator.Current.Separator = " & "; } } // If the chart looks too busy, we can remove data labels one by one chart.Series[1].DataLabels.RemoveAt(2); // We can also clear an entire data label collection for one whole series chart.Series[2].DataLabels.Clear(); doc.Save(ArtifactsDir + "Charts.ChartDataLabels.docx"); } /// <summary> /// Apply uniform data labels with custom number format and separator to a number (determined by labelsCount) of data points in a series /// </summary> private static void ApplyDataLabels(ChartSeries series, int labelsCount, string numberFormat, string separator) { for (int i = 0; i < labelsCount; i++) { ChartDataLabel label = series.DataLabels.Add(i); Assert.False(label.IsVisible); // Edit the appearance of the new data label label.ShowCategoryName = true; label.ShowSeriesName = true; label.ShowValue = true; label.ShowLeaderLines = true; label.ShowLegendKey = true; label.ShowPercentage = false; Assert.False(label.ShowDataLabelsRange); // Apply number format and separator label.NumberFormat.FormatCode = numberFormat; label.Separator = separator; // The label automatically becomes visible Assert.True(label.IsVisible); } }