Praca z wykresami
Do klasy DocumentBuilder dodano nową metodę insert_chart. Zobaczmy więc, jak wstawić prosty wykres kolumnowy do dokumentu za pomocą metody DocumentBuilder.insert_chart:
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ą metody add, add_double i add_date, które zostały wyeksponowane 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 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 za pomocą obiektu 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.
Na przykład zmieńmy tytuł lub legendę Chart:
Kod generuje następujące wyniki:
Jak pracować z ChartSeriesCollection of Chart
Przyjrzyjmy się kolekcji ChartSeries. Wszystkie serie wykresów są dostępne w kolekcji Chart.series:
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ę chart.series.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 klucz legendy, nazwę kategorii, nazwę serii, wartość 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 serii wykresów. Właściwości te obejmują show_category_name, show_bubble_size, show_percentage, show_series_name, show_value itp.
Proszę zobaczyć wynik poniżej:
Jak sformatować numer etykiety danych wykresu
Za pomocą ChartDataLabel.number_format 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 ChartAxis.tick_label_alignment.
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 fore_color, back_color, visible i transparency w klasie Stroke.
Poniższy przykład kodu pokazuje, jak ustawić kolor serii:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.insert_chart(aw.drawing.charts.ChartType.COLUMN, 432, 252)
chart = shape.chart
seriesColl = chart.series
# Delete default generated series.
seriesColl.clear()
# Create category names array.
categories = [ "AW Category 1", "AW Category 2" ]
# Adding new series. Value and category arrays must be the same size.
series1 = seriesColl.add("AW Series 1", categories, [ 1, 2 ])
series2 = seriesColl.add("AW Series 2", categories, [ 3, 4 ])
series3 = seriesColl.add("AW Series 3", categories, [ 5, 6 ])
# Set series color.
series1.format.fill.fore_color = drawing.Color.red
series2.format.fill.fore_color = drawing.Color.yellow
series3.format.fill.fore_color = drawing.Color.blue
doc.save(docs_base.artifacts_dir + "WorkingWithCharts.set_series_color.docx")
Poniższy przykład kodu pokazuje, jak ustawić kolor i wagę linii:
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
shape = builder.insert_chart(aw.drawing.charts.ChartType.LINE, 432, 252)
chart = shape.chart
seriesColl = chart.series
# Delete default generated series.
seriesColl.clear()
# Adding new series.
series1 = seriesColl.add_double("AW Series 1", [ 0.7, 1.8, 2.6 ], [ 2.7, 3.2, 0.8 ])
series2 = seriesColl.add_double("AW Series 2", [ 0.5, 1.5, 2.5 ], [ 3, 1, 2 ])
# Set series color.
series1.format.stroke.fore_color = drawing.Color.red
series1.format.stroke.weight = 5
series2.format.stroke.fore_color = drawing.Color.light_green
series2.format.stroke.weight = 5
doc.save(docs_base.artifacts_dir + "WorkingWithCharts.line_color_and_weight.docx")