Jak pracovat s grafy v .NET

Jak pracovat s grafy v .NET

Tento průvodce ukazuje, jak vložit nativní graf Wordu a ovládat jeho vzhled pomocí Aspose.Words FOSS pro .NET — skrytím legendy a os, úpravou měřítka hodnotové osy, následným výběrem jiného typu grafu a formátováním popisků dat a jednotlivých bodů. Aspose.Words FOSS pro .NET je k dispozici přes NuGet nebo sestavením ze zdrojového kódu.

Postupný návod

Krok 1: Získání knihovny

Naklonujte repozitář a sestavte Aspose.Words.sln v konfiguraci Release, poté přidejte odkaz na projekt Aspose.Words.csproj z vašeho vlastního projektu .NET, jak je popsáno v průvodci instalací.


Krok 2: Vložení grafu a zjednodušení jeho vzhledu

DocumentBuilder.InsertChart(chartType, width, height) vloží tvar grafu na pozici kurzoru a vrátí obsahující Shape; jeho vlastnost Chart je objekt Chart, který konfigurujete, s AxisX, AxisY, Legend a Title jako hlavními podobjekty. Typy grafů jsou umístěny v jmenném prostoru Aspose.Words.Drawing.Charts vedle jádrového jmenného prostoru Aspose.Words. Minimální, prezentaci připravený ChartType.Bar graf na novém Document často znamená nastavení Legend.Position na LegendPosition.None, nastavení Hidden a HasMajorGridlines na AxisY a AxisX, nastavení Title.Show na false, vymazání zástupného ChartSeriesCollection pomocí Series.Clear() před voláním Series.Add(seriesName, categories, values), přiřazení AxisY.Scaling.Maximum k pevné AxisBound místo automatického škálování, a poté zápis výsledku pomocí Document.Save. Kompletní příklad — Document, DocumentBuilder, Chart, AxisX, AxisY, Legend, Title, ChartSeriesCollection, AxisBound a Document.Save — vypadá takto:

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

Toto vytvoří Document, vloží ChartType.Bar graf, nastaví Chart.Legend.Position na LegendPosition.None pro skrytí legendy, nastaví Hidden = true a HasMajorGridlines = false na chart.AxisY a Hidden = true na chart.AxisX, nastaví chart.Title.Show = false, vymaže zástupnou sérii pomocí seriesColl.Clear(), pevně nastaví hodnotovou osu na maximum 100 pomocí chart.AxisY.Scaling.Maximum = new AxisBound(100), přidá jednu skutečnou sérii pomocí seriesColl.Add(seriesName, categories, values) a zapíše výsledek pomocí Document.Save.


Krok 3: Vyberte jiný typ grafu

ChartType pokrývá standardní rodiny grafů Wordu — Line, Bar, Column (plus varianty Stacked, PercentStacked a 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface a typy Word 2016 Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker a Waterfall. Předávejte požadovanou hodnotu jako argument chartType pro InsertChart — neexistuje žádný člen, který by po vložení měnil typ existujícího grafu, takže vyberte ten správný předem nebo nahraďte tvar.


Krok 4: Přidejte a formátujte popisky dat

Nastavte series.HasDataLabels = true před konfigurací series.DataLabels (a ChartDataLabelCollection) — jeho přepínače zobrazení nemají žádný viditelný účinek, když jsou popisky vypnuté. ShowValue, ShowCategoryName a ShowPercentage řídí, které informace se zobrazí, a Position je umisťuje relativně k datovému bodu.


Krok 5: Formátujte jednotlivý datový bod

Indexujte do DataPoints série (a ChartDataPointCollection), abyste získali jeden ChartDataPoint a nastavili jeho Format, Marker, Explosion nebo InvertIfNegative nezávisle na zbytku série. Takto zvýrazníte jeden sloupec, výsek nebo značku, aniž byste přetvořili celou sérii.

Časté problémy a opravy

Nový graf zobrazuje neočekávaná ukázková data. InsertChart naplní graf zástupnými sériemi. Zavolejte chart.Series.Clear() před přidáním vlastních sérií.

Hiding AxisY neodstraňuje mřížky. Hidden skryje čáru osy a popisky; mřížky jsou samostatný přepínač. Nastavte HasMajorGridlines = false (a HasMinorGridlines = false pokud jsou také viditelné pomocné mřížky).

Datové popisky se nezobrazí po nastavení ShowValue = true. HasDataLabels nebylo nejprve nastaveno na řadě. Nastavte series.HasDataLabels = true, pak nakonfigurujte series.DataLabels.

Scaling.Maximum se nezdá, že by se aplikovalo. Potvrďte, že to nastavujete na správný objekt osy (chart.AxisY pro osu hodnot ve většině typů grafů) a že žádná dřívější cesta kódu neprovádí reset Scaling zpět na výchozí AxisBound().

Často kladené otázky

Jak skrýt legendu grafu?

Nastavte chart.Legend.Position = LegendPosition.None.

Jak mohu nastavit osu na konkrétní rozsah místo automatického škálování?

Nastavte AxisScaling.Minimum a/nebo AxisScaling.Maximum (obě hodnoty AxisBound) na chart.AxisX.Scaling nebo chart.AxisY.Scaling.

Jak skrýt název grafu, aniž bych jej smazal?

Nastavte chart.Title.Show = false. Objekt ChartTitle a jeho Text zůstávají; pouze viditelný popisek je potlačen.

Jaké typy grafů jsou k dispozici?

ChartType uvádí klasické rodiny (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, plus vrstvené a 3D varianty) vedle typů Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

Mohu formátovat jeden datový bod odlišně od zbytku jeho řady?

Ano — indexujte do ChartSeries.DataPoints a nastavte Format, Marker nebo Explosion příslušného ChartDataPoint nezávisle.

Viz také:

 Čeština