Работа с графиками

В класс DocumentBuilder был добавлен новый метод insert_chart. Итак, давайте посмотрим, как вставить простую столбчатую диаграмму в документ с помощью метода DocumentBuilder.insert_chart:

Как вставить диаграмму

В этом разделе мы узнаем, как вставить диаграмму в документ.

Вставить столбчатую диаграмму

В следующем примере кода показано, как вставить столбчатую диаграмму:

Код выдает следующий результат:

create-column-chart-aspose-words-net

Существуют методы add, add_double и add_date, которые были использованы для охвата всех возможных вариантов источников данных для всех типов диаграмм:

Код выдает следующий результат:

create-column-chart-from-datasource-aspose-words-net

Вставить точечную диаграмму

В приведенном ниже примере показано, как вставить точечную диаграмму.

Код выдает следующий результат:

scatter-chart-aspose-words-net

Вставка диаграммы области

В следующем примере кода показано, как вставить областную диаграмму:

Код выдает следующий результат:

area-chart-aspose-words-net

Вставить пузырьковую диаграмму

В следующем примере кода показано, как вставить пузырьковую диаграмму:

Код выдает следующий результат:

bubble-chart-aspose-words-net

Работа с диаграммами с помощью объекта Shape.chart

После того, как диаграмма была вставлена и заполнена данными, вы можете изменить ее внешний вид. Shape.chart свойство содержит все связанные с диаграммой параметры, доступные через общедоступный API.

Например, давайте изменим поведение заголовка Chart или легенды:

Код генерирует следующие результаты:

line-chart-aspose-words-net

Как работать с ChartSeriesCollection диаграммы

Давайте заглянем в коллекцию ChartSeries. Все серии диаграмм доступны в коллекции Chart.series.:

Вы можете удалять ряды по одному или очистить их все, а также добавить новый, если это необходимо. Во вновь вставленной диаграмме в эту коллекцию добавлены некоторые ряды по умолчанию. Чтобы удалить их, вам нужно вызвать метод chart.series.clear().

Работа с одним классом ChartSeries

Вот как работать с конкретной серией.

Пожалуйста, ознакомьтесь с результатом ниже:

line-chart-chartseries-aspose-words-net

Все одиночные ChartSeries имеют параметры по умолчанию ChartDataPoint, пожалуйста, попробуйте изменить их с помощью следующего кода:

Пожалуйста, ознакомьтесь с результатом ниже:

line-chart-chartdatapoint-aspose-words-net

Как работать с одним ChartDataPoint из ChartSeries

Используя ChartDataPoint, вы можете настроить форматирование отдельной точки данных в ряду диаграмм:

Пожалуйста, ознакомьтесь с результатом ниже:

line-chart-datapoint-aspose-words-net

Как работать с ChartDataLabel из одного ChartSeries

Используя ChartDataLabel, вы можете задать форматирование отдельной метки данных в серии диаграмм, например, показать/скрыть LegendKey, CategoryName, SeriesName, Значение и т.д.

Пожалуйста, ознакомьтесь с результатом ниже:

bar-chart-aspose-words-net

Как определить параметры по умолчанию для ChartDataLabels из ChartSeries

Класс ChartDataLabelCollection определяет свойства, которые можно использовать для установки параметров по умолчанию для ChartDataLabels для рядов диаграмм. Эти свойства включают в себя show_category_name, show_bubble_size, show_percentage, show_series_name, show_value и т.д.

Пожалуйста, ознакомьтесь с результатом ниже:

pie-chart-aspose-words-net

Как отформатировать номер метки данных диаграммы

Используя 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")