Робота з діаграмами

Робота з діаграмами

Робота з діаграмами

Aspose.Words FOSS для .NET може вставляти рідні діаграми Word — ті самі діаграми DrawingML, які створює сам Word — у вигляді форми в шарі малювання. DocumentBuilder.InsertChart створює форму та повертає її; властивість Chart форми відкриває серії, осі, легенду та форматування. Цей посібник охоплює створення діаграми, вибір типу діаграми, роботу з серіями та точками даних, осі та сітки, а також форматування елементів діаграми.


Створення діаграми

Викличте DocumentBuilder.InsertChart(chartType, width, height), щоб вставити форму діаграми в позиції курсора і отримати назад Shape, який її містить. Її властивість Chart — це об’єкт Chart, який ви налаштовуєте. Щойно вставлена діаграма містить демо-серії-заповнювачі, тому очистіть Chart.Series перед додаванням реальних даних за допомогою 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");

Цей приклад створює Document, використовує DocumentBuilder.InsertChart(ChartType.Line, 432, 252) для вставки форми лінійної діаграми, читає shape.Chart, щоб отримати об’єкт Chart, викликає chart.Series.Clear() для видалення серії-заповнювача, додає одну реальну серію за допомогою chart.Series.Add(seriesName, categories, values) і записує результат за допомогою Document.Save.


Типи діаграм

ChartType охоплює стандартні сімейства діаграм Word — Line, Bar, Column (разом з їхніми варіантами Stacked, PercentStacked та 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, а також нові типи діаграм Word 2016 Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker та Waterfall. Передайте потрібне значення як аргумент chartType у InsertChart; змінити тип існуючої діаграми після вставки неможливо, окрім заміни форми.


Серії та точки даних

Chart.Series є ChartSeriesCollection ChartSeries об’єктів. Окрім перевантаження Add(seriesName, categories, values), використаного вище, ChartSeriesCollection також має перевантаження для пар значень X/Y, дат і розмірів бульбашок, а також Insert, Remove(index) та Clear(). Кожен ChartSeries надає DataPoints (a ChartDataPointCollection) для форматування окремих точок — Format, Marker, Explosion та InvertIfNegative — і HasDataLabels / DataLabels для увімкнення та налаштування ChartDataLabelCollection (ShowValue, ShowCategoryName, ShowPercentage, Position).


Вісі та сіткові лінії

Chart.AxisX, AxisY та AxisZ є об’єктами ChartAxis (з Chart.Axes як ChartAxisCollection для ітерації всіх них). Кожна вісь має HasMajorGridlines / HasMinorGridlines, MajorUnit / MinorUnit (з відповідними прапорцями *IsAuto), Crosses / CrossesAt, CategoryType та об’єкт TickLabels (AxisTickLabels) для шрифту міток і орієнтації. ChartAxis.Title (ChartAxisTitle) встановлює текст підпису осі через його Text та Show властивості.


Легенда, заголовок та таблиця даних

Chart.Title (ChartTitle) встановлює загальний підпис діаграми — Text, Show та Font. Chart.Legend (ChartLegend) керує тим, чи і де відображається легенда, за допомогою Position (значення LegendPosition, таке як Bottom, Right або Top) і надає окремі LegendEntries. Chart.DataTable (ChartDataTable) може відображати базові значення серій у вигляді таблиці під областю графіка, з перемикачами Show, HasLegendKeys та межі.


Форматування елементів діаграми

Більшість елементів діаграми — серії, точки даних, вісі, заголовок і легенда — надають властивість Format типу ChartFormat, яка, у свою чергу, надає Fill та Stroke для кольорів цього елементу, а також ShapeType (ChartShapeType) для форм маркерів точок даних. ChartFormat.SetDefaultFill() скидає елемент до його стандартного вигляду, визначеного темою.


Поради та найкращі практики

  • Завжди очищайте або замінюйте серію-заповнювач (chart.Series.Clear()) перед додаванням реальних даних — нововставлена діаграма вже містить зразкові дані.
  • Використовуйте перевантаження ChartSeriesCollection.Add, які відповідають формі ваших даних (категорії, пари X/Y, дати або розміри бульб), замість примусу всього через пари категорія/значення.
  • Встановіть HasDataLabels = true у серії перед налаштуванням її колекції DataLabels — властивості відображення колекції не мають видимого впливу, доки мітки вимкнено.
  • Прочитайте Chart.ChartSpace або перевірте конкретний ChartType, перш ніж покладатися на поведінку ліній сітки або осей, яка відрізняється між класичними діаграмами та діаграмами у стилі Word-2016.
  • Віддавайте перевагу ChartFormat.SetDefaultFill() замість ручного очищення кожної властивості заповнення, коли потрібно скинути зовнішній вигляд елемента.

Типові проблеми

ПроблемаПричинаВиправлення
Новий графік показує неочікувані демонстраційні даніInsertChart заповнює графік заповнювальною серієюВикличте chart.Series.Clear() перед додаванням вашої власної серії
Мітки даних не з’являютьсяHasDataLabels не був встановлений для серії перед налаштуванням DataLabelsВстановіть series.HasDataLabels = true, потім налаштуйте ShowValue/ShowCategoryName на series.DataLabels
Лінії сітки не відображаються на осі значеньHasMajorGridlines/HasMinorGridlines за замовчуванням мають значення false для цієї осіВстановіть chart.AxisY.HasMajorGridlines = true (і HasMinorGridlines, якщо потрібно)
Легенда не відображаєтьсяChart.Legend.Position встановлено на LegendPosition.NoneВстановіть Position на Bottom, Right, Top, Left або TopRight

FAQ

Як вставити діаграму в документ?

Викличте DocumentBuilder.InsertChart(chartType, width, height). Він повертає містящий Shape; прочитайте його властивість Chart, щоб налаштувати діаграму.

Як додати дані до діаграми?

Очистіть серію заповнювача за допомогою chart.Series.Clear(), потім викличте chart.Series.Add(seriesName, categories, values) (або одну з інших перевантажень Add для даних X/Y, дати або бульбашкових даних).

Які типи діаграм доступні?

ChartType включає класичні сімейства (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, а також їх стековані та 3D варіанти) та типи діаграм Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).

Як змінити місце розташування легенди?

Встановіть Chart.Legend.Position у значення LegendPosition, наприклад LegendPosition.Bottom або LegendPosition.Right.

Чи можу я форматувати окрему точку даних інакше, ніж решту її серії?

Так — індексувати ChartSeries.DataPoints (a ChartDataPointCollection) і встановити Format, Marker або Explosion цього ChartDataPoint незалежно від форматування на рівні серії.


API Reference Підсумок

Клас/МетодОпис
DocumentBuilder.InsertChartВставляє форму діаграми в позиції курсора та повертає її.
ChartОб’єкт конфігурації діаграми, доступний через Shape.Chart.
ChartTypeПерелік доступних типів діаграм (лінійна, стовпчикові, кругова та типи діаграм Word-2016).
ChartSeriesCollection / ChartSeriesСерії даних діаграми та методи для їх додавання, вставки або видалення.
ChartDataPointCollection / ChartDataPointФорматування окремих точок у серії.
ChartDataLabelCollection / ChartDataLabelМітки значень/категорій, що показуються на точках діаграми.
ChartAxis / ChartAxisCollectionНалаштування осей — сітка, одиниці вимірювання, точка перетину, мітки поділок.
ChartLegend / LegendPositionВидимість та розташування легенди.
ChartTitleЗагальний підпис діаграми.
ChartDataTableНеобов’язкова таблиця значень серій, що показана під областю діаграми.
ChartFormatФорматування заповнення, контуру та форми, спільне для більшості елементів діаграми.

Дивіться також

 Українська