Comment travailler avec les graphiques dans .NET

Comment travailler avec les graphiques dans .NET

Ce guide montre comment insérer un graphique Word natif et contrôler son apparence avec Aspose.Words FOSS pour .NET — masquer la légende et les axes, fixer l’échelle de l’axe des valeurs, puis choisir un type de graphique différent et mettre en forme les étiquettes de données et les points individuels. Aspose.Words FOSS pour .NET est disponible via NuGet ou en le compilant à partir du code source.

Guide étape par étape

Étape 1: obtenir la bibliothèque

Clonez le dépôt et compilez Aspose.Words.sln en configuration Release, puis ajoutez une référence de projet à Aspose.Words.csproj de votre propre projet .NET, comme décrit dans le Guide d’installation.


Étape 2: insérer un graphique et simplifier son apparence

DocumentBuilder.InsertChart(chartType, width, height) insère une forme de graphique à la position du curseur et renvoie le Shape contenant; sa propriété Chart est l’objet Chart que vous configurez, avec AxisX, AxisY, Legend et Title comme ses principaux sous-objets. Les types de graphiques résident dans l’espace de noms Aspose.Words.Drawing.Charts aux côtés de l’espace de noms principal Aspose.Words. Un graphique ChartType.Bar minimal, prêt pour la présentation, sur un nouveau Document implique souvent de définir Legend.Position sur LegendPosition.None, de définir Hidden et HasMajorGridlines sur AxisY et AxisX, de régler Title.Show sur false, de vider le ChartSeriesCollection d’espace réservé avec Series.Clear() avant d’appeler Series.Add(seriesName, categories, values), d’épingler AxisY.Scaling.Maximum à une AxisBound fixe au lieu de laisser l’échelle automatique, puis d’écrire le résultat avec Document.Save. L’exemple complet — Document, DocumentBuilder, Chart, AxisX, AxisY, Legend, Title, ChartSeriesCollection, AxisBound et Document.Save — ressemble à ceci:

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Bar, 432, 252);
Chart chart = shape.Chart;
chart.Legend.Position = LegendPosition.None;

ChartSeriesCollection seriesColl = chart.Series;
chart.AxisY.Hidden = true;
chart.AxisY.HasMajorGridlines = false;
chart.AxisX.Hidden = true;
chart.Title.Show = false;

seriesColl.Clear();
chart.AxisY.Scaling.Maximum = new AxisBound(100);

string[] categories = new string[] { "AW Category 1" };
seriesColl.Add("AW Series 1", categories, new double[] { 30 });

doc.Save("chart.docx");

Cela crée un Document, insère un ChartType.Bar chart, définit Chart.Legend.Position à LegendPosition.None pour masquer la légende, définit Hidden = true et HasMajorGridlines = false sur chart.AxisY et Hidden = true sur chart.AxisX, définit chart.Title.Show = false, efface la série de remplacement avec seriesColl.Clear(), fixe l’axe des valeurs à un maximum 100 via chart.AxisY.Scaling.Maximum = new AxisBound(100), ajoute une série réelle avec seriesColl.Add(seriesName, categories, values), et écrit le résultat avec Document.Save.


Étape 3: choisissez un type de graphique différent

ChartType couvre les familles de graphiques standard de Word — Line, Bar, Column (plus les variantes Stacked, PercentStacked et 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, et les types Word 2016 Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker et Waterfall. Passez la valeur souhaitée comme argument chartType à InsertChart — il n’existe aucun membre qui modifie le type d’un graphique existant après son insertion, donc choisissez le bon dès le départ ou remplacez la forme.


Étape 4: ajouter et formater les étiquettes de données

Définissez series.HasDataLabels = true avant de configurer series.DataLabels (un ChartDataLabelCollection) — ses bascules d’affichage n’ont aucun effet visible tant que les étiquettes sont désactivées. ShowValue, ShowCategoryName et ShowPercentage contrôlent les informations affichées, et Position les place par rapport au point de données.


Étape 5: formater un point de données individuel

Accédez à DataPoints d’une série (un ChartDataPointCollection) pour atteindre un ChartDataPoint et définir son Format, Marker, Explosion ou InvertIfNegative indépendamment du reste de la série. C’est ainsi que vous mettez en évidence une seule barre, tranche ou repère sans re-styliser l’ensemble de la série.

Problèmes courants et solutions

Le nouveau graphique affiche des données de démonstration inattendues. InsertChart alimente le graphique avec des séries factices. Appelez chart.Series.Clear() avant d’ajouter vos propres séries.

Hiding AxisY ne supprime pas les lignes de grille. Hidden masque la ligne d’axe et les libellés ; les quadrillages sont un commutateur séparé. Définir HasMajorGridlines = false (et HasMinorGridlines = false si les quadrillages mineurs sont également visibles).

Les libellés de données n’apparaissent pas après avoir défini ShowValue = true. HasDataLabels n’a pas été défini sur la série d’abord. Définir series.HasDataLabels = true, puis configure series.DataLabels.

Scaling.Maximum ne semble pas s’appliquer. Confirmez que vous le définissez sur le bon objet axe (chart.AxisY pour l’axe des valeurs dans la plupart des types de graphiques) et qu’aucun chemin de code antérieur ne réinitialise Scaling retour à sa valeur par défaut AxisBound().

Foire aux questions

Comment masquer la légende d’un graphique?

Définissez chart.Legend.Position = LegendPosition.None.

Comment fixer un axe à une plage spécifique au lieu d’un redimensionnement automatique?

Définissez AxisScaling.Minimum et/ou AxisScaling.Maximum (les deux valeurs AxisBound) sur chart.AxisX.Scaling ou chart.AxisY.Scaling.

Comment masquer le titre du graphique sans le supprimer?

Définissez chart.Title.Show = false. L’objet ChartTitle et son Text restent; seule la légende visible est supprimée.

Quels types de graphiques sont disponibles?

ChartType répertorie les familles classiques (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, ainsi que les variantes empilées et 3D) aux côtés des types Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

Puis-je mettre en forme un point de données différemment du reste de sa série?

Oui — indexez dans ChartSeries.DataPoints et définissez indépendamment le Format, le Marker ou le Explosion de ce ChartDataPoint.

Voir aussi

 Français