Praca z wykresami

Praca z wykresami

Praca z wykresami

Aspose.Words FOSS dla .NET może wstawiać natywne wykresy Word — te same wykresy DrawingML, które tworzy sam Word — jako kształt w warstwie rysunkowej. DocumentBuilder.InsertChart tworzy kształt i go zwraca; właściwość Chart kształtu udostępnia serie, osie, legendę i formatowanie. Ten przewodnik opisuje tworzenie wykresu, wybór typu wykresu, pracę z seriami i punktami danych, osie i linie siatki oraz formatowanie elementów wykresu.


Tworzenie wykresu

Wywołaj DocumentBuilder.InsertChart(chartType, width, height), aby wstawić kształt wykresu w miejscu kursora i otrzymać zawierający Shape. Jego właściwość Chart jest obiektem Chart, który konfigurować. Świeżo wstawiony wykres zawiera przykładowe serie zastępcze, więc wyczyść Chart.Series przed dodaniem prawdziwych danych przy użyciu 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");

Ten przykład buduje Document, używa DocumentBuilder.InsertChart(ChartType.Line, 432, 252) do wstawienia kształtu wykresu liniowego, odczytuje shape.Chart, aby uzyskać obiekt Chart, wywołuje chart.Series.Clear(), aby usunąć serię zastępczą, dodaje jedną prawdziwą serię przy użyciu chart.Series.Add(seriesName, categories, values) i zapisuje wynik przy pomocy Document.Save.


Typy wykresów

ChartType obejmuje standardowe rodziny wykresów Word — Line, Bar, Column (oraz ich warianty Stacked, PercentStacked i 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface oraz nowsze typy wykresów Word 2016 Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker i Waterfall. Przekaż żądaną wartość jako argument chartType do InsertChart; nie ma możliwości zmiany typu istniejącego wykresu po wstawieniu, poza zastąpieniem kształtu.


Serie i Punkty danych

Chart.Series jest ChartSeriesCollection ChartSeries obiektów. Poza Add(seriesName, categories, values) przeciążeniem użytym powyżej, ChartSeriesCollection ma również przeciążenia dla par wartości X/Y, dat i rozmiarów bąbelkowych, plus Insert, Remove(index) i Clear(). Każdy ChartSeries udostępnia DataPoints (a ChartDataPointCollection) do formatowania punkt po punkcie — Format, Marker, Explosion i InvertIfNegative — oraz HasDataLabels / DataLabels aby włączyć i skonfigurować ChartDataLabelCollection (ShowValue, ShowCategoryName, ShowPercentage, Position).


Osie i linie siatki

Chart.AxisX, AxisY, i AxisZ są ChartAxis obiektami (z Chart.Axes jako ChartAxisCollection do iteracji po wszystkich). Każda oś ma HasMajorGridlines / HasMinorGridlines, MajorUnit / MinorUnit (z pasującymi flagami *IsAuto), Crosses / CrossesAt, CategoryType oraz obiekt TickLabels (AxisTickLabels) dla czcionki etykiety i orientacji. ChartAxis.Title (ChartAxisTitle) ustawia tekst podpisu osi za pomocą jej właściwości Text i Show.


Legenda, tytuł i tabela danych

Chart.Title (ChartTitle) ustawia ogólny podpis wykresu — Text, Show i Font. Chart.Legend (ChartLegend) kontroluje, czy i gdzie legenda pojawia się poprzez Position (wartość LegendPosition taka jak Bottom, Right lub Top) i udostępnia indywidualne LegendEntries. Chart.DataTable (ChartDataTable) może wyświetlać podstawowe wartości serii jako tabelę pod obszarem wykresu, z przełącznikami Show, HasLegendKeys i obramowania.


Formatowanie elementów wykresu

Większość elementów wykresu — serii, punktów danych, osi, tytułu i legendy — udostępnia właściwość Format typu ChartFormat, która z kolei udostępnia Fill i Stroke dla kolorów tego elementu, plus ShapeType (ChartShapeType) dla kształtów znaczników punktów danych. ChartFormat.SetDefaultFill() resetuje element do domyślnego wyglądu określonego przez motyw.


Wskazówki i najlepsze praktyki

  • Zawsze wyczyść lub zamień serię zastępczą (chart.Series.Clear()) przed dodaniem prawdziwych danych — nowo wstawiony wykres zawiera już przykładowe dane.
  • Używaj przeciążeń ChartSeriesCollection.Add, które pasują do kształtu twoich danych (kategorie, pary X/Y, daty lub rozmiary bąbelków), zamiast wymuszać wszystko poprzez pary kategoria/wartość.
  • Ustaw HasDataLabels = true na serii przed skonfigurowaniem jej kolekcji DataLabels — właściwości wyświetlania kolekcji nie mają widocznego wpływu, gdy etykiety są wyłączone.
  • Przeczytaj Chart.ChartSpace lub sprawdź konkretny ChartType przed poleganiem na zachowaniu linii siatki lub osi, które różni się między klasycznymi wykresami a wykresami w stylu Word-2016.
  • Preferuj ChartFormat.SetDefaultFill() zamiast ręcznego czyszczenia każdej właściwości wypełnienia, gdy chcesz zresetować wygląd elementu.

Typowe problemy

ProblemPrzyczynaNaprawa
Nowy wykres wyświetla nieoczekiwane dane demonstracyjneInsertChart wypełnia wykres serią zastępcząWywołaj chart.Series.Clear() przed dodaniem własnych serii
Etykiety danych nie pojawiają sięHasDataLabels nie został ustawiony na serii przed skonfigurowaniem DataLabelsUstaw series.HasDataLabels = true, a następnie skonfiguruj ShowValue/ShowCategoryName na series.DataLabels
Linie siatki nie wyświetlają się na osi wartościHasMajorGridlines/HasMinorGridlines domyślnie ustawiają się na false dla tej osiUstaw chart.AxisY.HasMajorGridlines = true (i HasMinorGridlines, jeśli potrzebne)
Legenda się nie wyświetlaChart.Legend.Position jest ustawione na LegendPosition.NoneUstaw Position na Bottom, Right, Top, Left lub TopRight

FAQ

Jak wstawić wykres do dokumentu?

Wywołaj DocumentBuilder.InsertChart(chartType, width, height). Zwraca on zawierający Shape; odczytaj jego właściwość Chart, aby skonfigurować wykres.

Jak dodać dane do wykresu?

Wyczyść serię zastępczą za pomocą chart.Series.Clear(), a następnie wywołaj chart.Series.Add(seriesName, categories, values) (lub jedną z pozostałych przeciążeń Add dla danych X/Y, dat lub bąbelkowych).

Jakie typy wykresów są dostępne?

ChartType zawiera klasyczne rodziny (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, wraz z ich wariantami skumulowanymi i 3D) oraz typy wykresów Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

Jak zmienić miejsce wyświetlania legendy?

Ustaw Chart.Legend.Position na wartość LegendPosition, np. LegendPosition.Bottom lub LegendPosition.Right.

Czy mogę sformatować pojedynczy punkt danych inaczej niż resztę jego serii?

Tak — odwołaj się do ChartSeries.DataPoints (a ChartDataPointCollection) i ustaw Format, Marker lub Explosion tego ChartDataPoint niezależnie od formatowania na poziomie serii.


API Reference Podsumowanie

Klasa/MetodaOpis
DocumentBuilder.InsertChartWstawia kształt wykresu w miejscu kursora i zwraca go.
ChartObiekt konfiguracji wykresu, dostępny poprzez Shape.Chart.
ChartTypeWyliczenie dostępnych typów wykresów (line, bar, pie oraz typy wykresów Word-2016).
ChartSeriesCollection / ChartSeriesSerie danych wykresu oraz metody pozwalające je dodać, wstawić lub usunąć.
ChartDataPointCollection / ChartDataPointFormatowanie poszczególnych punktów w serii.
ChartDataLabelCollection / ChartDataLabelEtykiety wartości/kategorii wyświetlane na punktach wykresu.
ChartAxis / ChartAxisCollectionKonfiguracja osi — linie siatki, jednostki, punkt przecięcia, etykiety podziałek.
ChartLegend / LegendPositionWidoczność i położenie legendy.
ChartTitleOgólny podpis wykresu.
ChartDataTableOpcjonalna tabela wartości serii wyświetlana poniżej obszaru wykresu.
ChartFormatFormatowanie wypełnienia, obrysu i kształtu współdzielone przez większość elementów wykresu.

Zobacz także

 Polski