Cum să lucraţi cu graficele în .NET

Cum să lucraţi cu graficele în .NET

Acest ghid arată cum să inserați un grafic Word nativ și să controlați aspectul acestuia cu Aspose.Words FOSS pentru .NET — ascunzând legenda și axele, fixând scala axei valorii, apoi alegând un tip diferit de grafic și formatarea etichetelor de date și a punctelor individuale. Aspose.Words FOSS pentru .NET este disponibil prin NuGet sau prin compilare din sursă.

Ghid pas cu pas

Pasul 1: Obțineți biblioteca

Clonați depozitul și construiți Aspose.Words.sln în configurația Release, apoi adăugați o referință de proiect la Aspose.Words.csproj din propriul dumneavoastră proiect .NET, așa cum este descris în ghidul de instalare.


Pasul 2: Inserarea unui grafic și simplificarea aspectului

DocumentBuilder.InsertChart(chartType, width, height) inserează o formă de grafic la cursor și returnează Shape care îl conține; proprietatea sa Chart este obiectul Chart pe care îl configurați, cu AxisX, AxisY, Legend și Title ca principale sub-obiecte ale sale. Tipurile de grafice se află în spațiul de nume Aspose.Words.Drawing.Charts alături de spațiul de nume de bază Aspose.Words. Un grafic ChartType.Bar minimal, gata pentru prezentare, pe un nou Document înseamnă adesea setarea Legend.Position la LegendPosition.None, setarea Hidden și HasMajorGridlines pe AxisY și AxisX, setarea Title.Show la fals, curățarea elementului substituent ChartSeriesCollection cu Series.Clear() înainte de a apela Series.Add(seriesName, categories, values), fixarea AxisY.Scaling.Maximum la un AxisBound fix în loc să se scaleze automat, apoi scrierea rezultatului cu Document.Save. Exemplul complet — Document, DocumentBuilder, Chart, AxisX, AxisY, Legend, Title, ChartSeriesCollection, AxisBound și Document.Save — arată astfel:

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");

Acest lucru construiește un Document, inserează un grafic ChartType.Bar, setează Chart.Legend.Position la LegendPosition.None pentru a ascunde legenda, setează Hidden = true și HasMajorGridlines = false pe chart.AxisY și Hidden = true pe chart.AxisX, setează chart.Title.Show = false, curăță seria de placeholder cu seriesColl.Clear(), fixează axa valorilor la un maxim 100 prin chart.AxisY.Scaling.Maximum = new AxisBound(100), adaugă o serie reală cu seriesColl.Add(seriesName, categories, values) și scrie rezultatul cu Document.Save.


Pasul 3: Alegeți un tip de diagramă diferit

ChartType acoperă familiile standard de diagrame Word — Line, Bar, Column (plus variantele Stacked, PercentStacked și 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, și tipurile Word 2016 Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker și Waterfall. Transmiteți valoarea dorită ca argument chartType către InsertChart — nu există niciun membru care să schimbe tipul unei diagrame existente după inserare, așa că alegeți-l corect de la început sau înlocuiți forma.


Pasul 4: Adăugați și formatați etichetele de date

Setați series.HasDataLabels = true înainte de a configura series.DataLabels (un ChartDataLabelCollection) — comutatoarele sale de afișare nu au niciun efect vizibil în timp ce etichetele sunt dezactivate. ShowValue, ShowCategoryName și ShowPercentage controlează ce informații apar, iar Position le poziționează relativ la punctul de date.


Pasul 5: Formatați un punct de date individual

Accesați DataPoints (un ChartDataPointCollection) al unei serii pentru a ajunge la un ChartDataPoint și setați-i Format, Marker, Explosion sau InvertIfNegative independent de restul seriei. Aceasta este modalitatea de a evidenția o singură bară, felie sau marcator fără a restila întreaga serie.

Probleme comune și remedii

Graficul nou afișează date demo neașteptate. InsertChart Populează graficul cu serii de substituent. Apelați chart.Series.Clear() înainte de a adăuga propriile serii.

Hiding AxisY nu elimină liniile de rețea. Hidden ascunde linia axei și etichetele; liniile de grilă sunt un comutator separat. Setează HasMajorGridlines = false (și HasMinorGridlines = false dacă liniile de grilă minore sunt de asemenea vizibile).

Etichetele de date nu apar după setarea ShowValue = true. HasDataLabels nu a fost setat pe serie mai întâi. Setează series.HasDataLabels = true, apoi configurează series.DataLabels.

Scaling.Maximum se pare că nu se aplică. Confirmă că îl setezi pe obiectul axei corect (chart.AxisY pentru axa valorilor în majoritatea tipurilor de grafice) și că niciun traseu de cod anterior nu resetează Scaling înapoi la valoarea implicită AxisBound().

Întrebări frecvente

Cum ascund legenda unui grafic?

Setează chart.Legend.Position = LegendPosition.None.

Cum pot fixa o axă la o gamă specifică în loc de scalarea automată?

Setaţi AxisScaling.Minimum și/sau AxisScaling.Maximum (ambele valori AxisBound) pe chart.AxisX.Scaling sau chart.AxisY.Scaling.

Cum pot ascunde titlul graficului fără a-l șterge?

Setaţi chart.Title.Show = false. Obiectul ChartTitle și Text său rămân; doar legenda vizibilă este suprimată.

Ce tipuri de grafice sunt disponibile?

ChartType enumeră familiile clasice (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, plus variante stivuite și 3D) alături de tipurile Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

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

Da — indexaţi în ChartSeries.DataPoints și setaţi Format, Marker sau Explosion ale acelui ChartDataPoint independent.

Vezi și:

 Română