Работа с графиками
В класс DocumentBuilder был добавлен новый метод insert_chart. Итак, давайте посмотрим, как вставить простую столбчатую диаграмму в документ с помощью метода DocumentBuilder.insert_chart:
Как вставить диаграмму
В этом разделе мы узнаем, как вставить диаграмму в документ.
Вставить столбчатую диаграмму
В следующем примере кода показано, как вставить столбчатую диаграмму:
Код выдает следующий результат:
Существуют методы add, add_double и add_date, которые были использованы для охвата всех возможных вариантов источников данных для всех типов диаграмм:
Код выдает следующий результат:
Вставить точечную диаграмму
В приведенном ниже примере показано, как вставить точечную диаграмму.
Код выдает следующий результат:
Вставка диаграммы области
В следующем примере кода показано, как вставить областную диаграмму:
Код выдает следующий результат:
Вставить пузырьковую диаграмму
В следующем примере кода показано, как вставить пузырьковую диаграмму:
Код выдает следующий результат:
Работа с диаграммами с помощью объекта Shape.chart
После того, как диаграмма была вставлена и заполнена данными, вы можете изменить ее внешний вид. Shape.chart свойство содержит все связанные с диаграммой параметры, доступные через общедоступный API.
Например, давайте изменим поведение заголовка Chart или легенды:
Код генерирует следующие результаты:
Как работать с ChartSeriesCollection диаграммы
Давайте заглянем в коллекцию ChartSeries. Все серии диаграмм доступны в коллекции Chart.series.:
Вы можете удалять ряды по одному или очистить их все, а также добавить новый, если это необходимо. Во вновь вставленной диаграмме в эту коллекцию добавлены некоторые ряды по умолчанию. Чтобы удалить их, вам нужно вызвать метод chart.series.clear().
Работа с одним классом ChartSeries
Вот как работать с конкретной серией.
Пожалуйста, ознакомьтесь с результатом ниже:
Все одиночные ChartSeries имеют параметры по умолчанию ChartDataPoint, пожалуйста, попробуйте изменить их с помощью следующего кода:
Пожалуйста, ознакомьтесь с результатом ниже:
Как работать с одним ChartDataPoint из ChartSeries
Используя ChartDataPoint, вы можете настроить форматирование отдельной точки данных в ряду диаграмм:
Пожалуйста, ознакомьтесь с результатом ниже:
Как работать с ChartDataLabel из одного ChartSeries
Используя ChartDataLabel, вы можете задать форматирование отдельной метки данных в серии диаграмм, например, показать/скрыть LegendKey, CategoryName, SeriesName, Значение и т.д.
Пожалуйста, ознакомьтесь с результатом ниже:
Как определить параметры по умолчанию для ChartDataLabels из ChartSeries
Класс ChartDataLabelCollection определяет свойства, которые можно использовать для установки параметров по умолчанию для ChartDataLabels для рядов диаграмм. Эти свойства включают в себя show_category_name, show_bubble_size, show_percentage, show_series_name, show_value и т.д.
Пожалуйста, ознакомьтесь с результатом ниже:
Как отформатировать номер метки данных диаграммы
Используя ChartDataLabel.number_format, вы можете задать числовое оформление отдельной метки данных на диаграмме.
В следующем примере кода показано, как отформатировать номер метки данных:
Как задать свойства оси диаграммы
Если вы хотите работать с осью диаграммы, масштабированием и единицами отображения для оси значений, пожалуйста, используйте классы ChartAxis, AxisDisplayUnit и AxisScaling.
В следующем примере кода показано, как определить свойства осей X и Y:
Как установить значение даты и времени на оси
В следующем примере кода показано, как задать значения даты и времени для свойств оси:
Как отформатировать числовое значение оси
В следующем примере кода показано, как изменить формат чисел на оси значений:
Как установить границы оси
Класс AxisBound представляет минимальную или максимальную границу значений оси. Граница может быть задана в виде числа, даты и времени или специального “автоматического” значения.
В следующем примере кода показано, как задать границы оси:
Как установить единицу измерения интервала между надписями
В следующем примере кода показано, как задать единицу измерения интервала между метками на оси:
Как скрыть ось диаграммы
Если вы хотите отобразить или скрыть ось диаграммы, вы можете просто добиться этого, установив значение свойства ChartAxis.hidden.
В следующем примере кода показано, как скрыть ось Y на диаграмме:
Как выровнять метку диаграммы
Если вы хотите задать выравнивание текста для многострочных надписей, вы можете просто добиться этого, установив значение свойства ChartAxis.tick_label_alignment.
В следующем примере кода показано, как установить флажок для выравнивания меток:
Как настроить форматирование заливки и обводки
Для рядов диаграмм, точек данных и маркеров можно задать форматирование заливки и обводки. Для этого вам необходимо использовать свойства типа ChartFormat в классах ChartSeries, ChartDataPoint и ChartMarker, а также псевдонимы для некоторых свойств, таких как fore_color, back_color, visible, и transparency в классе Stroke.
В следующем примере кода показано, как задать цвет серии:
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")
В следующем примере кода показано, как задать цвет и вес линии:
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")