Étiquette de données du graphique
Les étiquettes de données d’un graphique affichent des détails sur les séries de données du graphique ou sur des points de données individuels. Elles permettent aux lecteurs d’identifier rapidement les séries de données et facilitent également la compréhension des graphiques.
Définir la précision des données dans les étiquettes de données du graphique
Ce code C# vous montre comment définir la précision des données dans une étiquette de données de graphique :
using (Presentation pres = new Presentation())
{
IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Line, 50, 50, 450, 300);
chart.HasDataTable = true;
chart.ChartData.Series[0].NumberFormatOfValues = "#,##0.00";
pres.Save("PrecisionOfDatalabels_out.pptx", SaveFormat.Pptx);
}
Afficher le pourcentage en tant qu’étiquettes
Aspose.Slides for .NET vous permet de définir des étiquettes de pourcentage sur les graphiques affichés. Ce code C# illustre l’opération :
// Crée une instance de la classe Presentation
Presentation presentation = new Presentation();
ISlide slide = presentation.Slides[0];
IChart chart = slide.Shapes.AddChart(ChartType.StackedColumn, 20, 20, 400, 400);
IChartSeries series = chart.ChartData.Series[0];
IChartCategory cat;
double[] total_for_Cat = new double[chart.ChartData.Categories.Count];
for (int k = 0; k < chart.ChartData.Categories.Count; k++)
{
cat = chart.ChartData.Categories[k];
for (int i = 0; i < chart.ChartData.Series.Count; i++)
{
total_for_Cat[k] = total_for_Cat[k] + Convert.ToDouble(chart.ChartData.Series[i].DataPoints[k].Value.Data);
}
}
double dataPontPercent = 0f;
for (int x = 0; x < chart.ChartData.Series.Count; x++)
{
series = chart.ChartData.Series[x];
series.Labels.DefaultDataLabelFormat.ShowLegendKey = false;
for (int j = 0; j < series.DataPoints.Count; j++)
{
IDataLabel lbl = series.DataPoints[j].Label;
dataPontPercent = (Convert.ToDouble(series.DataPoints[j].Value.Data) / total_for_Cat[j]) * 100;
IPortion port = new Portion();
port.Text = String.Format("{0:F2} %", dataPontPercent);
port.PortionFormat.FontHeight = 8f;
lbl.TextFrameForOverriding.Text = "";
IParagraph para = lbl.TextFrameForOverriding.Paragraphs[0];
para.Portions.Add(port);
lbl.DataLabelFormat.ShowSeriesName = false;
lbl.DataLabelFormat.ShowPercentage = false;
lbl.DataLabelFormat.ShowLegendKey = false;
lbl.DataLabelFormat.ShowCategoryName = false;
lbl.DataLabelFormat.ShowBubbleSize = false;
}
}
// Enregistre la présentation contenant le graphique
presentation.Save("DisplayPercentageAsLabels_out.pptx", SaveFormat.Pptx);
Définir le symbole de pourcentage avec les étiquettes de données du graphique
Ce code C# vous montre comment définir le symbole de pourcentage pour une étiquette de données de graphique :
// Crée une instance de la classe Presentation
Presentation presentation = new Presentation();
// Récupère la référence d'une diapositive via son index
ISlide slide = presentation.Slides[0];
// Crée le graphique PercentsStackedColumn sur une diapositive
IChart chart = slide.Shapes.AddChart(ChartType.PercentsStackedColumn, 20, 20, 500, 400);
// Définit NumberFormatLinkedToSource à false
chart.Axes.VerticalAxis.IsNumberFormatLinkedToSource = false;
chart.Axes.VerticalAxis.NumberFormat = "0.00%";
chart.ChartData.Series.Clear();
int defaultWorksheetIndex = 0;
// Récupère la feuille de données du graphique
IChartDataWorkbook workbook = chart.ChartData.ChartDataWorkbook;
// Ajoute une nouvelle série
IChartSeries series = chart.ChartData.Series.Add(workbook.GetCell(defaultWorksheetIndex, 0, 1, "Reds"), chart.Type);
series.DataPoints.AddDataPointForBarSeries(workbook.GetCell(defaultWorksheetIndex, 1, 1, 0.30));
series.DataPoints.AddDataPointForBarSeries(workbook.GetCell(defaultWorksheetIndex, 2, 1, 0.50));
series.DataPoints.AddDataPointForBarSeries(workbook.GetCell(defaultWorksheetIndex, 3, 1, 0.80));
series.DataPoints.AddDataPointForBarSeries(workbook.GetCell(defaultWorksheetIndex, 4, 1, 0.65));
// Définit la couleur de remplissage de la série
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Red;
// Définit les propriétés de LabelFormat
series.Labels.DefaultDataLabelFormat.ShowValue = true;
series.Labels.DefaultDataLabelFormat.IsNumberFormatLinkedToSource = false;
series.Labels.DefaultDataLabelFormat.NumberFormat = "0.0%";
series.Labels.DefaultDataLabelFormat.TextFormat.PortionFormat.FontHeight = 10;
series.Labels.DefaultDataLabelFormat.TextFormat.PortionFormat.FillFormat.FillType = FillType.Solid;
series.Labels.DefaultDataLabelFormat.TextFormat.PortionFormat.FillFormat.SolidFillColor.Color = Color.White;
series.Labels.DefaultDataLabelFormat.ShowValue = true;
// Ajoute une nouvelle série
IChartSeries series2 = chart.ChartData.Series.Add(workbook.GetCell(defaultWorksheetIndex, 0, 2, "Blues"), chart.Type);
series2.DataPoints.AddDataPointForBarSeries(workbook.GetCell(defaultWorksheetIndex, 1, 2, 0.70));
series2.DataPoints.AddDataPointForBarSeries(workbook.GetCell(defaultWorksheetIndex, 2, 2, 0.50));
series2.DataPoints.AddDataPointForBarSeries(workbook.GetCell(defaultWorksheetIndex, 3, 2, 0.20));
series2.DataPoints.AddDataPointForBarSeries(workbook.GetCell(defaultWorksheetIndex, 4, 2, 0.35));
// Définit le type de remplissage et la couleur
series2.Format.Fill.FillType = FillType.Solid;
series2.Format.Fill.SolidFillColor.Color = Color.Blue;
series2.Labels.DefaultDataLabelFormat.ShowValue = true;
series2.Labels.DefaultDataLabelFormat.IsNumberFormatLinkedToSource = false;
series2.Labels.DefaultDataLabelFormat.NumberFormat = "0.0%";
series2.Labels.DefaultDataLabelFormat.TextFormat.PortionFormat.FontHeight = 10;
series2.Labels.DefaultDataLabelFormat.TextFormat.PortionFormat.FillFormat.FillType = FillType.Solid;
series2.Labels.DefaultDataLabelFormat.TextFormat.PortionFormat.FillFormat.SolidFillColor.Color = Color.White;
// Enregistre la présentation sur le disque
presentation.Save("SetDataLabelsPercentageSign_out.pptx", SaveFormat.Pptx);
Définir la distance de l’étiquette par rapport à l’axe
Ce code C# vous montre comment définir la distance de l’étiquette par rapport à un axe de catégorie lorsque vous travaillez avec un graphique tracé à partir d’axes :
// Crée une instance de la classe Presentation
Presentation presentation = new Presentation();
// Obtient la référence d'une diapositive
ISlide sld = presentation.Slides[0];
// Crée un graphique sur la diapositive
IChart ch = sld.Shapes.AddChart(ChartType.ClusteredColumn, 20, 20, 500, 300);
// Définit la distance de l'étiquette par rapport à un axe
ch.Axes.HorizontalAxis.LabelOffset = 500;
// Enregistre la présentation sur le disque
presentation.Save("SetCategoryAxisLabelDistance_out.pptx", SaveFormat.Pptx);
Ajuster la position de l’étiquette
Lorsque vous créez un graphique qui ne dépend d’aucun axe, comme un diagramme en secteurs, les étiquettes de données du graphique peuvent se retrouver trop proches de son bord. Dans ce cas, il faut ajuster la position de l’étiquette de données afin que les traits de liaison soient affichés clairement.
Ce code C# vous montre comment ajuster la position de l’étiquette sur un diagramme en secteurs :
using (Presentation pres = new Presentation())
{
IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Pie, 50, 50, 200, 200);
IChartSeriesCollection series = chart.ChartData.Series;
IDataLabel label = series[0].Labels[0];
label.DataLabelFormat.ShowValue = true;
label.DataLabelFormat.Position = LegendDataLabelPosition.OutsideEnd;
label.X = 0.71f;
label.Y = 0.04f;
pres.Save("pres.pptx", SaveFormat.Pptx);
}

FAQ
Comment puis‑je éviter que les étiquettes de données se chevauchent sur des graphiques denses ?
Combinez le placement automatique des étiquettes, les traits de liaison et la réduction de la taille de police ; si nécessaire, masquez certains champs (par exemple, la catégorie) ou n’affichez les étiquettes que pour les points extrêmes/clés.
Comment puis‑je désactiver les étiquettes uniquement pour les valeurs zéro, négatives ou vides ?
Filtrez les points de données avant d’activer les étiquettes et désactivez l’affichage pour les valeurs égales à 0, les valeurs négatives ou les valeurs manquantes selon une règle définie.
Comment puis‑je garantir un style d’étiquette cohérent lors de l’exportation en PDF/images ?
Définissez explicitement les polices (famille, taille) et vérifiez que la police est disponible du côté du rendu afin d’éviter tout remplacement.