Як працювати з діаграмами в .NET

Як працювати з діаграмами в .NET

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

Покроковий посібник

Крок 1: Отримати бібліотеку

Клонуйте репозиторій і збирайте Aspose.Words.sln у конфігурації Release, потім додайте посилання на проект до Aspose.Words.csproj з вашого власного проекту .NET, як описано в Посібнику з встановлення.


Крок 2: Вставити діаграму та спростити її вигляд

DocumentBuilder.InsertChart(chartType, width, height) вставляє форму діаграми в позицію курсора і повертає містящий Shape; його властивість Chart — це об’єкт Chart, який ви налаштовуєте, з AxisX, AxisY, Legend і Title як його основними підоб’єктами. Типи діаграм розміщені в просторі імен Aspose.Words.Drawing.Charts разом з ядром простору імен Aspose.Words. Мінімальна діаграма ChartType.Bar, готова до презентації, на новому Document часто означає встановлення Legend.Position у LegendPosition.None, встановлення Hidden і HasMajorGridlines у AxisY і AxisX, встановлення Title.Show у false, очищення заповнювача ChartSeriesCollection за допомогою Series.Clear() перед викликом Series.Add(seriesName, categories, values), фіксацію AxisY.Scaling.Maximum на фіксованому AxisBound замість автоматичного масштабування, а потім запис результату за допомогою Document.Save. Повний приклад — Document, DocumentBuilder, Chart, AxisX, AxisY, Legend, Title, ChartSeriesCollection, AxisBound і Document.Save — виглядає так:

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Bar, 432, 252);
Chart chart = shape.Chart;
chart.Legend.Position = LegendPosition.None;

ChartSeriesCollection seriesColl = chart.Series;
chart.AxisY.Hidden = true;
chart.AxisY.HasMajorGridlines = false;
chart.AxisX.Hidden = true;
chart.Title.Show = false;

seriesColl.Clear();
chart.AxisY.Scaling.Maximum = new AxisBound(100);

string[] categories = new string[] { "AW Category 1" };
seriesColl.Add("AW Series 1", categories, new double[] { 30 });

doc.Save("chart.docx");

Це створює Document, вставляє діаграму ChartType.Bar, встановлює Chart.Legend.Position у LegendPosition.None, щоб сховати легенду, встановлює Hidden = true і HasMajorGridlines = false на chart.AxisY і Hidden = true на chart.AxisX, встановлює chart.Title.Show = false, очищає серії-заповнювачі за допомогою seriesColl.Clear(), фіксує вісь значень на максимумі 100 за допомогою chart.AxisY.Scaling.Maximum = new AxisBound(100), додає одну реальну серію за допомогою seriesColl.Add(seriesName, categories, values) і записує результат за допомогою Document.Save.


Крок 3: Виберіть інший тип діаграми

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 — немає члену, який змінює тип існуючої діаграми після вставки, тому оберіть правильний заздалегідь або замініть форму.


Крок 4: Додайте та відформатуйте підписи даних

Встановіть series.HasDataLabels = true перед налаштуванням series.DataLabels (a ChartDataLabelCollection) — його перемикачі відображення не мають видимого ефекту, доки підписи вимкнені. ShowValue, ShowCategoryName і ShowPercentage керують тим, яка інформація відображається, а Position розташовує її відносно точки даних.


Крок 5: Форматуйте окрему точку даних

Зверніться до DataPoints серії (a ChartDataPointCollection), щоб отримати один ChartDataPoint і встановити його Format, Marker, Explosion або InvertIfNegative незалежно від решти серії. Ось як підсвітити окремий стовпчик, частку або маркер без зміни стилю всієї серії.

Типові проблеми та виправлення

Новий графік показує неочікувані демонстраційні дані. InsertChart заповнює графік серіями-заповнювачами. Викличте chart.Series.Clear() перед додаванням власних серій.

Hiding AxisY не видаляє лінії сітки. Hidden ховає лінію осі та підписи; сітка — окремий перемикач. Встановіть HasMajorGridlines = false (і HasMinorGridlines = false якщо дрібна сітка також видима).

Мітки даних не з’являються після встановлення ShowValue = true. HasDataLabels не було встановлено у серії спочатку. Встановіть series.HasDataLabels = true, потім налаштуйте series.DataLabels.

Scaling.Maximum здається, не застосовується. Переконайтеся, що ви встановлюєте його на правильний об’єкт осі (chart.AxisY для осі значень у більшості типів діаграм) і щоб жоден попередній шлях коду не скидав Scaling повернутись до стандартного AxisBound().

Поширені запитання

Як приховати легенду графіка?

Встановіть chart.Legend.Position = LegendPosition.None.

Як зафіксувати вісь у певному діапазоні замість автоматичного масштабування?

Встановіть AxisScaling.Minimum і/або AxisScaling.Maximum (обидва значення AxisBound) на chart.AxisX.Scaling або chart.AxisY.Scaling.

Як приховати заголовок діаграми, не видаляючи його?

Встановіть chart.Title.Show = false. Об’єкт ChartTitle і його Text залишаються; лише видимий підпис вимикається.

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

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

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

Так — індексувати ChartSeries.DataPoints і встановити Format, Marker або Explosion у цьому ChartDataPoint незалежно.

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

 Українська