Lucrul cu grafice

Lucrul cu grafice

Lucrul cu grafice

Aspose.Words FOSS pentru .NET poate insera grafice native Word — aceleași grafice DrawingML pe care le creează Word — ca o formă în stratul de desen. DocumentBuilder.InsertChart creează forma și o returnează; proprietatea Chart a formei expune seriile, axele, legenda și formatarea. Acest ghid acoperă crearea unui grafic, alegerea tipului de grafic, lucrul cu seriile și punctele de date, axele și liniile de grilă, și formatarea elementelor graficului.


Crearea unui grafic

Apelă DocumentBuilder.InsertChart(chartType, width, height) pentru a insera o formă de grafic la cursor și pentru a obține Shape care o conține. Proprietatea sa Chart este obiectul Chart pe care îl configurezi. Un grafic inserat recent vine cu serii demo de tip placeholder, așa că curăță Chart.Series înainte de a adăuga date reale cu ChartSeriesCollection.Add(seriesName, categories, values):

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

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

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;

// Delete default generated series.
chart.Series.Clear();

string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

doc.Save("chart.docx");

Acest exemplu construiește un Document, folosește DocumentBuilder.InsertChart(ChartType.Line, 432, 252) pentru a insera o formă de grafic de tip linie, citește shape.Chart pentru a obține obiectul Chart, apelează chart.Series.Clear() pentru a elimina seria placeholder, adaugă o serie reală cu chart.Series.Add(seriesName, categories, values), și scrie rezultatul cu Document.Save.


Tipuri de grafice

ChartType acoperă familiile standard de grafice Word — Line, Bar, Column (plus variantele lor Stacked, PercentStacked și 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, și tipurile de grafice Word 2016 mai noi Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker și Waterfall. Transmite valoarea dorită ca argument chartType către InsertChart; nu există nicio modalitate de a schimba tipul unui grafic existent după inserare, în afară de înlocuirea formei.


Serii și puncte de date

Chart.Series este un ChartSeriesCollection de obiecte ChartSeries. Dincolo de supraîncărcarea Add(seriesName, categories, values) folosită mai sus, ChartSeriesCollection are, de asemenea, supraîncărcări pentru perechi de valori X/Y, date și dimensiuni de bule, plus Insert, Remove(index) și Clear(). Fiecare ChartSeries expune DataPoints (un ChartDataPointCollection) pentru formatarea per punct — Format, Marker, Explosion și InvertIfNegative — și HasDataLabels / DataLabels pentru a activa și configura un ChartDataLabelCollection (ShowValue, ShowCategoryName, ShowPercentage, Position).


Axe și linii de grilă

Chart.AxisX, AxisY și AxisZ sunt obiecte ChartAxis (cu Chart.Axes ca ChartAxisCollection pentru iterarea tuturor lor). Fiecare axă are HasMajorGridlines / HasMinorGridlines, MajorUnit / MinorUnit (cu steaguri *IsAuto corespunzătoare), Crosses / CrossesAt, CategoryType, și un obiect TickLabels (AxisTickLabels) pentru fontul etichetei și orientare. ChartAxis.Title (ChartAxisTitle) setează textul legendelor axei prin proprietățile sale Text și Show.


Legendă, titlu și tabel de date

Chart.Title (ChartTitle) setează legenda generală a graficului — Text, Show și Font. Chart.Legend (ChartLegend) controlează dacă și unde apare legenda prin Position (o valoare LegendPosition precum Bottom, Right sau Top) și expune LegendEntries individuale. Chart.DataTable (ChartDataTable) poate afișa valorile seriei de bază ca un tabel sub zona de desen, cu comutatoare pentru Show, HasLegendKeys și bordură.


Formatarea elementelor graficului

Majoritatea elementelor graficului — serii, puncte de date, axe, titlul și legenda — expun o proprietate Format de tip ChartFormat, care la rândul său expune Fill și Stroke pentru culorile acelui element, plus un ShapeType (ChartShapeType) pentru formele markerelor de puncte de date. ChartFormat.SetDefaultFill() resetează un element la aspectul său implicit determinat de temă.


Sfaturi și cele mai bune practici

  • Întotdeauna curățați sau înlocuiți seria de substituent (chart.Series.Clear()) înainte de a adăuga date reale — un grafic introdus recent vine deja cu date de probă.
  • Utilizați suprasarcinile ChartSeriesCollection.Add care se potrivesc cu forma datelor dvs. (categorii, perechi X/Y, date sau dimensiuni de bule) în loc să forțați totul prin perechi categorie/valoare.
  • Setați HasDataLabels = true pe o serie înainte de a configura colecția sa DataLabels — proprietățile de afișare ale colecției nu au niciun efect vizibil cât timp etichetele sunt dezactivate.
  • Citiți Chart.ChartSpace sau verificați ChartType specific înainte de a vă baza pe comportamentul liniilor de grilă sau al axei care diferă între graficele clasice și cele în stil Word-2016.
  • Prefereați ChartFormat.SetDefaultFill() în locul curățării manuale a fiecărei proprietăți de umplere atunci când doriți să resetați aspectul unui element.

Probleme comune

ProblemăCauzăRemediere
Graficul nou afișează date demo neașteptateInsertChart inițializează graficul cu serii placeholderApelă chart.Series.Clear() înainte de a adăuga propriile serii
Etichetele de date nu aparHasDataLabels nu a fost setat pe serie înainte de a configura DataLabelsSetați series.HasDataLabels = true, apoi configurați ShowValue/ShowCategoryName pe series.DataLabels
Liniile de grilă nu apar pe axa valorilorHasMajorGridlines/HasMinorGridlines au valoarea implicită false pentru acea axăSetați chart.AxisY.HasMajorGridlines = true (și HasMinorGridlines dacă este necesar)
Legenda nu apareChart.Legend.Position este setat la LegendPosition.NoneSetați Position la Bottom, Right, Top, Left sau TopRight

FAQ

Cum pot să inserez un grafic într-un document?

Apelă DocumentBuilder.InsertChart(chartType, width, height). Returnează Shape care îl conține; citește proprietatea Chart pentru a configura graficul.

Cum pot să adaug date la un grafic?

Curăță seria placeholder cu chart.Series.Clear(), apoi apelează chart.Series.Add(seriesName, categories, values) (sau una dintre celelalte suprasarcini Add pentru date X/Y, date calendaristice sau date de tip bule).

Ce tipuri de grafice sunt disponibile?

ChartType include familiile clasice (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, plus variantele lor stivuite și 3D) și tipurile de grafice Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

Cum pot să schimb poziția în care apare legenda?

Setează Chart.Legend.Position la o valoare LegendPosition, cum ar fi LegendPosition.Bottom sau LegendPosition.Right.

Pot să formatez un punct de date individual diferit de restul seriei sale?

Da — indexează în ChartSeries.DataPoints (un ChartDataPointCollection) și setează ChartDataPoint’s Format, Marker sau Explosion independent de formatarea la nivel de serie.


API Reference Rezumat

Clasă/MetodăDescriere:
DocumentBuilder.InsertChartInserează o formă de diagramă la cursor și o returnează.
ChartObiectul de configurare a diagramei, accesat prin Shape.Chart.
ChartTypeEnum al tipurilor de diagramă disponibile (linie, bară, plăcintă și tipurile de diagramă Word-2016).
ChartSeriesCollection / ChartSeriesSeria de date a graficului și metodele de adăugare, inserare sau eliminare a acestora.
ChartDataPointCollection / ChartDataPointFormatare per punct în cadrul unei serii.
ChartDataLabelCollection / ChartDataLabelEtichete de valoare/categorie afișate pe punctele graficului.
ChartAxis / ChartAxisCollectionConfigurarea axei — linii de rețea, unități, punct de traversare, etichete de marcaje.
ChartLegend / LegendPositionVizibilitatea și poziționarea legendei.
ChartTitleTitlul general al graficului.
ChartDataTableTabel opțional cu valorile seriilor afișat sub zona graficului.
ChartFormatFormatarea de umplere, contur și formă, partajată de majoritatea elementelor graficului.

Vezi și:

 Română