Praca z wykresami
Do klasy DocumentBuilder dodano nową metodę InsertChart. Zobaczmy więc, jak wstawić prosty wykres kolumnowy do dokumentu za pomocą metody InsertChart.
Jak wstawić wykres
W tej sekcji dowiemy się, jak wstawić wykres do dokumentu.
Wstaw wykres kolumnowy
Poniższy przykład kodu pokazuje, jak wstawić wykres kolumnowy:
Kod generuje następujący wynik:
Istnieją cztery różne przeciążenia metody Add serii, która została udostępniona w celu uwzględnienia wszystkich możliwych wariantów źródeł danych dla wszystkich typów wykresów:
Kod generuje następujący wynik:
Wstaw wykres punktowy
Poniższy przykład kodu pokazuje, jak wstawić wykres punktowy:
Kod generuje następujący wynik:
Wstaw wykres warstwowy
Poniższy przykład kodu pokazuje, jak wstawić wykres warstwowy:
Kod generuje następujący wynik:
Wstaw wykres bąbelkowy
Poniższy przykład kodu pokazuje, jak wstawić wykres bąbelkowy:
Kod generuje następujący wynik:
Praca z wykresami poprzez obiekt Shape.Chart
Po wstawieniu i wypełnieniu wykresu danymi istnieje możliwość zmiany jego wyglądu. Właściwość Shape.Chart
zawiera wszystkie opcje związane z wykresami dostępne w publicznym API.
Zmieńmy na przykład tytuł wykresu lub zachowanie legendy:
Kod generuje następujące wyniki:
Jak pracować z ChartSeriesCollection of Chart
Przyjrzyjmy się kolekcji ChartSeries. Wszystkie serie wykresów są dostępne poprzez kolekcję chart.Series, czyli IEnumerable:
Możesz usuwać serie pojedynczo lub wyczyścić wszystkie, a jeśli zajdzie taka potrzeba, dodać nową. Nowo wstawiony wykres zawiera kilka domyślnych serii dodanych do tej kolekcji. Aby je usunąć należy wywołać metodę wykres.Seria.Clear().
Praca z klasą Single ChartSeries
Oto jak pracować z konkretną serią:
Proszę zobaczyć wynik poniżej:
Wszystkie pojedyncze ChartSeries mają domyślne opcje ChartDataPoint. Spróbuj użyć poniższego kodu, aby je zmienić:
Proszę zobaczyć wynik poniżej:
Jak pracować z pojedynczym ChartDataPoint w ChartSeries
Korzystając z ChartDataPoint, możesz dostosować formatowanie pojedynczego punktu danych w serii wykresów:
Proszę zobaczyć wynik poniżej:
Jak pracować z ChartDataLabel pojedynczej serii wykresów
Używając ChartDataLabel, możesz określić formatowanie pojedynczej etykiety danych serii wykresów, np. pokaż/ukryj LegendKey, CategoryName, SeriesName, Value itp.:
Proszę zobaczyć wynik poniżej:
Jak zdefiniować domyślne opcje dla ChartDataLabels w ChartSeries
Klasa ChartDataLabelCollection definiuje właściwości, których można użyć do ustawienia domyślnych opcji dla ChartDataLabels dla Chart Series. Te właściwości obejmują ShowCategoryName, ShowBubbleSize, ShowPercentage, ShowSeriesName, ShowValue itp.:
Proszę zobaczyć wynik poniżej:
Jak sformatować numer etykiety danych wykresu
Za pomocą NumberFormat możesz określić formatowanie liczbowe pojedynczej etykiety danych wykresu.
Poniższy przykład kodu pokazuje, jak sformatować numer etykiety danych:
Jak ustawić właściwości osi wykresu
Jeśli chcesz pracować z osią wykresu, skalowaniem i jednostkami wyświetlania dla osi wartości, użyj klas ChartAxis, AxisDisplayUnit i AxisScaling.
Poniższy przykład kodu pokazuje, jak zdefiniować właściwości osi X i Y:
Jak ustawić wartość czasu Date osi
Poniższy przykład kodu pokazuje, jak ustawić wartości daty/godziny dla właściwości osi:
Jak sformatować wartość liczbową osi
Poniższy przykład kodu pokazuje, jak zmienić format liczb na osi wartości:
Jak ustawić granice osi
Klasa AxisBound
reprezentuje minimalną lub maksymalną granicę wartości osi. Powiązanie można określić jako wartość liczbową, datę i godzinę lub specjalną wartość “automatyczną”.
Poniższy przykład kodu pokazuje, jak ustawić granice osi:
Jak ustawić jednostkę odstępu między etykietami
Poniższy przykład kodu pokazuje, jak ustawić jednostkę odstępu między etykietami na osi:
Jak ukryć oś wykresu
Jeśli chcesz pokazać lub ukryć oś wykresu, możesz to po prostu osiągnąć, ustawiając wartość właściwości ChartAxis.Hidden
.
Poniższy przykład kodu pokazuje, jak ukryć oś Y wykresu:
Jak wyrównać etykietę wykresu
Jeśli chcesz ustawić wyrównanie tekstu dla etykiet wielowierszowych, możesz to po prostu osiągnąć, ustawiając wartość właściwości TickLabelsX**.Wyrównanie**.
Poniższy przykład kodu pokazuje, jak zaznaczyć wyrównanie etykiet:
Jak ustawić formatowanie wypełnienia i obrysu
Formatowanie wypełnienia i obrysu można ustawić dla serii wykresów, punktów danych i znaczników. Aby to zrobić, należy użyć właściwości typu ChartFormat w klasach ChartSeries, ChartDataPoint i ChartMarker, a także aliasów dla niektórych właściwości, takich jak ForeColor, BackColor, Visible i Transparency w klasie Stroke
.
Poniższy przykład kodu pokazuje, jak ustawić kolor serii:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
Chart chart = shape.Chart;
ChartSeriesCollection seriesColl = chart.Series;
// Delete default generated series.
seriesColl.Clear();
// Create category names array.
string[] categories = new string[] { "AW Category 1", "AW Category 2" };
// Adding new series. Value and category arrays must be the same size.
ChartSeries series1 = seriesColl.Add("AW Series 1", categories, new double[] { 1, 2 });
ChartSeries series2 = seriesColl.Add("AW Series 2", categories, new double[] { 3, 4 });
ChartSeries series3 = seriesColl.Add("AW Series 3", categories, new double[] { 5, 6 });
// Set series color.
series1.Format.Fill.ForeColor = Color.Red;
series2.Format.Fill.ForeColor = Color.Yellow;
series3.Format.Fill.ForeColor = Color.Blue;
doc.Save(dir + "ColumnColor.docx");
Poniższy przykład kodu pokazuje, jak ustawić kolor i wagę linii:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
ChartSeriesCollection seriesColl = chart.Series;
// Delete default generated series.
seriesColl.Clear();
// Adding new series.
ChartSeries series1 = seriesColl.Add("AW Series 1", new double[] { 0.7, 1.8, 2.6 },
new double[] { 2.7, 3.2, 0.8 });
ChartSeries series2 = seriesColl.Add("AW Series 2", new double[] { 0.5, 1.5, 2.5 },
new double[] { 3, 1, 2 });
// Set series color.
series1.Format.Stroke.ForeColor = Color.Red;
series1.Format.Stroke.Weight = 5;
series2.Format.Stroke.ForeColor = Color.LightGreen;
series2.Format.Stroke.Weight = 5;
doc.Save(dir + "LineColorAndWeight.docx");