Trabajar con gráficos
Se agregó un nuevo método InsertChart a la clase DocumentBuilder. Entonces, veamos cómo insertar un gráfico de columnas simple en el documento usando el método InsertChart.
Cómo insertar un gráfico
En esta sección aprenderemos cómo insertar un gráfico en un documento.
Insertar gráfico de columnas
El siguiente ejemplo de código muestra cómo insertar un gráfico de columnas:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Add chart with default data. You can specify different chart types and sizes. | |
Shape shape = builder.InsertChart(ChartType.Column, 432, 252); | |
// Chart property of Shape contains all chart related options. | |
Chart chart = shape.Chart; | |
// Get chart series collection. | |
ChartSeriesCollection seriesColl = chart.Series; | |
// Check series count. | |
Console.WriteLine(seriesColl.Count); | |
// Delete default generated series. | |
seriesColl.Clear(); | |
// Create category names array, in this example we have two categories. | |
string[] categories = new string[] { "AW Category 1", "AW Category 2" }; | |
// Adding new series. Please note, data arrays must not be empty and arrays must be the same size. | |
seriesColl.Add("AW Series 1", categories, new double[] { 1, 2 }); | |
seriesColl.Add("AW Series 2", categories, new double[] { 3, 4 }); | |
seriesColl.Add("AW Series 3", categories, new double[] { 5, 6 }); | |
seriesColl.Add("AW Series 4", categories, new double[] { 7, 8 }); | |
seriesColl.Add("AW Series 5", categories, new double[] { 9, 10 }); | |
dataDir = dataDir + @"TestInsertSimpleChartColumn_out.doc"; | |
doc.Save(dataDir); |
El código produce el siguiente resultado:
Hay cuatro sobrecargas diferentes para el método Agregar serie, que se expuso para cubrir todas las variantes posibles de fuentes de datos para todos los tipos de gráficos:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert Column chart. | |
Shape shape = builder.InsertChart(ChartType.Column, 432, 252); | |
Chart chart = shape.Chart; | |
// Use this overload to add series to any type of Bar, Column, Line and Surface charts. | |
chart.Series.Add("AW Series 1", new string[] { "AW Category 1", "AW Category 2" }, new double[] { 1, 2 }); | |
dataDir = dataDir + @"TestInsertChartColumn_out.doc"; | |
doc.Save(dataDir); |
El código produce el siguiente resultado:
Insertar gráfico de dispersión
El siguiente ejemplo de código muestra cómo insertar un gráfico de dispersión:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithCharts(); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert Scatter chart. | |
Shape shape = builder.InsertChart(ChartType.Scatter, 432, 252); | |
Chart chart = shape.Chart; | |
// Use this overload to add series to any type of Scatter charts. | |
chart.Series.Add("AW Series 1", new double[] { 0.7, 1.8, 2.6 }, new double[] { 2.7, 3.2, 0.8 }); | |
dataDir = dataDir + "TestInsertScatterChart_out.docx"; | |
doc.Save(dataDir); |
El código produce el siguiente resultado:
Insertar gráfico de áreas
El siguiente ejemplo de código muestra cómo insertar un gráfico de áreas:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithCharts(); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert Area chart. | |
Shape shape = builder.InsertChart(ChartType.Area, 432, 252); | |
Chart chart = shape.Chart; | |
// Use this overload to add series to any type of Area, Radar and Stock charts. | |
chart.Series.Add("AW Series 1", new DateTime[] { | |
new DateTime(2002, 05, 01), | |
new DateTime(2002, 06, 01), | |
new DateTime(2002, 07, 01), | |
new DateTime(2002, 08, 01), | |
new DateTime(2002, 09, 01)}, | |
new double[] { 32, 32, 28, 12, 15 }); | |
dataDir = dataDir + @"TestInsertAreaChart_out.docx"; | |
doc.Save(dataDir); |
El código produce el siguiente resultado:
Insertar gráfico de burbujas
El siguiente ejemplo de código muestra cómo insertar un gráfico de burbujas:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithCharts(); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert Bubble chart. | |
Shape shape = builder.InsertChart(ChartType.Bubble, 432, 252); | |
Chart chart = shape.Chart; | |
// Use this overload to add series to any type of Bubble charts. | |
chart.Series.Add("AW Series 1", new double[] { 0.7, 1.8, 2.6 }, new double[] { 2.7, 3.2, 0.8 }, new double[] { 10, 4, 8 }); | |
dataDir = dataDir + @"TestInsertBubbleChart_out.docx"; | |
doc.Save(dataDir); |
El código produce el siguiente resultado:
Trabajar con gráficos a través de objetos Shape.Chart
Una vez que el gráfico se insertó y se llenó con datos, podrá cambiar su apariencia. La propiedad Shape.Chart
contiene todas las opciones relacionadas con gráficos disponibles a través del API público.
Por ejemplo, cambiemos el título del gráfico o el comportamiento de la leyenda:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithCharts(); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Shape shape = builder.InsertChart(ChartType.Line, 432, 252); | |
Chart chart = shape.Chart; | |
// Determines whether the title shall be shown for this chart. Default is true. | |
chart.Title.Show = true; | |
// Setting chart Title. | |
chart.Title.Text = "Sample Line Chart Title"; | |
// Determines whether other chart elements shall be allowed to overlap title. | |
chart.Title.Overlay = false; | |
// Please note if null or empty value is specified as title text, auto generated title will be shown. | |
// Determines how legend shall be shown for this chart. | |
chart.Legend.Position = LegendPosition.Left; | |
chart.Legend.Overlay = true; | |
dataDir = dataDir + @"SimpleLineChart_out.docx"; | |
doc.Save(dataDir); |
El código genera los siguientes resultados:
Cómo trabajar con ChartSeriesCollection of Chart
Echemos un vistazo a la colección ChartSeries. Todas las series de gráficos están disponibles a través de la colección chart.Series, que es IEnumerable:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Get chart series collection. | |
ChartSeriesCollection seriesColl = chart.Series; | |
// Check series count. | |
Console.WriteLine(seriesColl.Count); |
Puede eliminar series una por una o borrarlas todas, así como agregar una nueva si es necesario. El gráfico recién insertado tiene algunas series predeterminadas agregadas a esta colección. Para eliminarlos es necesario llamar al método gráfico.Series.Clear().
Trabajar con una única clase ChartSeries
A continuación se explica cómo trabajar con una serie en particular:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Get first series. | |
ChartSeries series0 = shape.Chart.Series[0]; | |
// Get second series. | |
ChartSeries series1 = shape.Chart.Series[1]; | |
// Change first series name. | |
series0.Name = "My Name1"; | |
// Change second series name. | |
series1.Name = "My Name2"; | |
// You can also specify whether the line connecting the points on the chart shall be smoothed using Catmull-Rom splines. | |
series0.Smooth = true; | |
series1.Smooth = true; |
Por favor vea el resultado a continuación:
Todos los ChartSeries individuales tienen opciones de ChartDataPoint predeterminadas; intente usar el siguiente código para cambiarlas:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// Specifies whether by default the parent element shall inverts its colors if the value is negative. | |
series0.InvertIfNegative = true; | |
// Set default marker symbol and size. | |
series0.Marker.Symbol = MarkerSymbol.Circle; | |
series0.Marker.Size = 15; | |
series1.Marker.Symbol = MarkerSymbol.Star; | |
series1.Marker.Size = 10; |
Por favor vea el resultado a continuación:
Cómo trabajar con un único ChartDataPoint de un ChartSeries
Con ChartDataPoint puede personalizar el formato de un único punto de datos de la serie de gráficos:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithCharts(); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Shape shape = builder.InsertChart(ChartType.Line, 432, 252); | |
Chart chart = shape.Chart; | |
// Get first series. | |
ChartSeries series0 = shape.Chart.Series[0]; | |
// Get second series. | |
ChartSeries series1 = shape.Chart.Series[1]; | |
ChartDataPointCollection dataPointCollection = series0.DataPoints; | |
// Add data point to the first and second point of the first series. | |
ChartDataPoint dataPoint00 = dataPointCollection.Add(0); | |
ChartDataPoint dataPoint01 = dataPointCollection.Add(1); | |
// Set explosion. | |
dataPoint00.Explosion = 50; | |
// Set marker symbol and size. | |
dataPoint00.Marker.Symbol = MarkerSymbol.Circle; | |
dataPoint00.Marker.Size = 15; | |
dataPoint01.Marker.Symbol = MarkerSymbol.Diamond; | |
dataPoint01.Marker.Size = 20; | |
// Add data point to the third point of the second series. | |
ChartDataPoint dataPoint12 = series1.DataPoints.Add(2); | |
dataPoint12.InvertIfNegative = true; | |
dataPoint12.Marker.Symbol = MarkerSymbol.Star; | |
dataPoint12.Marker.Size = 20; | |
dataDir = dataDir + @"SingleChartDataPoint_out.docx"; | |
doc.Save(dataDir); |
Por favor vea el resultado a continuación:
Cómo trabajar con ChartDataLabel de una única ChartSeries
Con ChartDataLabel puede especificar el formato de una única etiqueta de datos de la serie de gráficos, como mostrar/ocultar LegendKey, CategoryName, SeriesName, Value, etc.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Shape shape = builder.InsertChart(ChartType.Bar, 432, 252); | |
Chart chart = shape.Chart; | |
// Get first series. | |
ChartSeries series0 = shape.Chart.Series[0]; | |
ChartDataLabelCollection labels = series0.DataLabels; | |
// Set properties. | |
labels.ShowLegendKey = true; | |
// By default, when you add data labels to the data points in a pie chart, leader lines are displayed for data labels that are | |
// Positioned far outside the end of data points. Leader lines create a visual connection between a data label and its | |
// Corresponding data point. | |
labels.ShowLeaderLines = true; | |
labels.ShowCategoryName = false; | |
labels.ShowPercentage = false; | |
labels.ShowSeriesName = true; | |
labels.ShowValue = true; | |
labels.Separator = "/"; | |
labels.ShowValue = true; | |
dataDir = dataDir + "SimpleBarChart_out.docx"; | |
doc.Save(dataDir); |
Por favor vea el resultado a continuación:
Cómo definir opciones predeterminadas para ChartDataLabels de ChartSeries
La clase ChartDataLabelCollection define propiedades que se pueden utilizar para establecer opciones predeterminadas para ChartDataLabels para Chart Series. Estas propiedades incluyen ShowCategoryName, ShowBubbleSize, ShowPercentage, ShowSeriesName, ShowValue, etc.:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
Shape shape = builder.InsertChart(ChartType.Pie, 432, 252); | |
Chart chart = shape.Chart; | |
chart.Series.Clear(); | |
ChartSeries series = chart.Series.Add("Series 1", | |
new string[] { "Category1", "Category2", "Category3" }, | |
new double[] { 2.7, 3.2, 0.8 }); | |
ChartDataLabelCollection labels = series.DataLabels; | |
labels.ShowPercentage = true; | |
labels.ShowValue = true; | |
labels.ShowLeaderLines = false; | |
labels.Separator = " - "; | |
doc.Save(dataDir + "Demo.docx"); |
Por favor vea el resultado a continuación:
Cómo dar formato al número de etiqueta de datos del gráfico
Con NumberFormat puede especificar el formato numérico de una única etiqueta de datos del gráfico.
El siguiente ejemplo de código muestra cómo formatear un número de la etiqueta de datos:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Add chart with default data. | |
Shape shape = builder.InsertChart(ChartType.Line, 432, 252); | |
Chart chart = shape.Chart; | |
chart.Title.Text = "Data Labels With Different Number Format"; | |
// Delete default generated series. | |
chart.Series.Clear(); | |
// Add new series | |
ChartSeries series1 = chart.Series.Add("AW Series 1", | |
new string[] { "AW0", "AW1", "AW2" }, | |
new double[] { 2.5, 1.5, 3.5 }); | |
series1.HasDataLabels = true; | |
series1.DataLabels.ShowValue = true; | |
series1.DataLabels[0].NumberFormat.FormatCode = "\"$\"#,##0.00"; | |
series1.DataLabels[1].NumberFormat.FormatCode = "dd/mm/yyyy"; | |
series1.DataLabels[2].NumberFormat.FormatCode = "0.00%"; | |
// Or you can set format code to be linked to a source cell, | |
// in this case NumberFormat will be reset to general and inherited from a source cell. | |
series1.DataLabels[2].NumberFormat.IsLinkedToSource = true; | |
dataDir = dataDir + @"NumberFormat_DataLabel_out.docx"; | |
doc.Save(dataDir); |
Cómo configurar las propiedades del eje del gráfico
Si desea trabajar con el eje del gráfico, la escala y las unidades de visualización para el eje de valores, utilice las clases ChartAxis, AxisDisplayUnit y AxisScaling.
El siguiente ejemplo de código muestra cómo definir las propiedades de los ejes X e Y:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert chart. | |
Shape shape = builder.InsertChart(ChartType.Area, 432, 252); | |
Chart chart = shape.Chart; | |
// Clear demo data. | |
chart.Series.Clear(); | |
// Fill data. | |
chart.Series.Add("AW Series 1", | |
new DateTime[] { new DateTime(2002, 01, 01), new DateTime(2002, 06, 01), new DateTime(2002, 07, 01), new DateTime(2002, 08, 01), new DateTime(2002, 09, 01) }, | |
new double[] { 640, 320, 280, 120, 150 }); | |
ChartAxis xAxis = chart.AxisX; | |
ChartAxis yAxis = chart.AxisY; | |
// Change the X axis to be category instead of date, so all the points will be put with equal interval on the X axis. | |
xAxis.CategoryType = AxisCategoryType.Category; | |
// Define X axis properties. | |
xAxis.Crosses = AxisCrosses.Custom; | |
xAxis.CrossesAt = 3; // measured in display units of the Y axis (hundreds) | |
xAxis.ReverseOrder = true; | |
xAxis.MajorTickMark = AxisTickMark.Cross; | |
xAxis.MinorTickMark = AxisTickMark.Outside; | |
xAxis.TickLabelOffset = 200; | |
// Define Y axis properties. | |
yAxis.TickLabelPosition = AxisTickLabelPosition.High; | |
yAxis.MajorUnit = 100; | |
yAxis.MinorUnit = 50; | |
yAxis.DisplayUnit.Unit = AxisBuiltInUnit.Hundreds; | |
yAxis.Scaling.Minimum = new AxisBound(100); | |
yAxis.Scaling.Maximum = new AxisBound(700); | |
dataDir = dataDir + @"SetAxisProperties_out.docx"; | |
doc.Save(dataDir); |
Cómo establecer el valor de fecha y hora del eje
El siguiente ejemplo de código muestra cómo establecer valores de fecha/hora en las propiedades del eje:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert chart. | |
Shape shape = builder.InsertChart(ChartType.Column, 432, 252); | |
Chart chart = shape.Chart; | |
// Clear demo data. | |
chart.Series.Clear(); | |
// Fill data. | |
chart.Series.Add("AW Series 1", | |
new DateTime[] { new DateTime(2017, 11, 06), new DateTime(2017, 11, 09), new DateTime(2017, 11, 15), | |
new DateTime(2017, 11, 21), new DateTime(2017, 11, 25), new DateTime(2017, 11, 29) }, | |
new double[] { 1.2, 0.3, 2.1, 2.9, 4.2, 5.3 }); | |
// Set X axis bounds. | |
ChartAxis xAxis = chart.AxisX; | |
xAxis.Scaling.Minimum = new AxisBound((new DateTime(2017, 11, 05)).ToOADate()); | |
xAxis.Scaling.Maximum = new AxisBound((new DateTime(2017, 12, 03)).ToOADate()); | |
// Set major units to a week and minor units to a day. | |
xAxis.MajorUnit = 7; | |
xAxis.MinorUnit = 1; | |
xAxis.MajorTickMark = AxisTickMark.Cross; | |
xAxis.MinorTickMark = AxisTickMark.Outside; | |
dataDir = dataDir + @"SetDateTimeValuesToAxis_out.docx"; | |
doc.Save(dataDir); |
Cómo formatear el valor numérico del eje
El siguiente ejemplo de código muestra cómo cambiar el formato de los números en el eje de valores:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert chart. | |
Shape shape = builder.InsertChart(ChartType.Column, 432, 252); | |
Chart chart = shape.Chart; | |
// Clear demo data. | |
chart.Series.Clear(); | |
// Fill data. | |
chart.Series.Add("AW Series 1", | |
new string[] { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }, | |
new double[] { 1900000, 850000, 2100000, 600000, 1500000 }); | |
// Set number format. | |
chart.AxisY.NumberFormat.FormatCode = "#,##0"; | |
dataDir = dataDir + @"FormatAxisNumber_out.docx"; | |
doc.Save(dataDir); |
Cómo establecer límites de eje
La clase AxisBound
representa un límite mínimo o máximo de valores de eje. El límite se puede especificar como un valor numérico, de fecha y hora o un valor “automático” especial.
El siguiente ejemplo de código muestra cómo establecer los límites de un eje:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert chart. | |
Shape shape = builder.InsertChart(ChartType.Column, 432, 252); | |
Chart chart = shape.Chart; | |
// Clear demo data. | |
chart.Series.Clear(); | |
// Fill data. | |
chart.Series.Add("AW Series 1", | |
new string[] { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }, | |
new double[] { 1.2, 0.3, 2.1, 2.9, 4.2 }); | |
chart.AxisY.Scaling.Minimum = new AxisBound(0); | |
chart.AxisY.Scaling.Maximum = new AxisBound(6); | |
dataDir = dataDir + @"SetboundsOfAxis_out.docx"; | |
doc.Save(dataDir); |
Cómo configurar la unidad de intervalo entre etiquetas
El siguiente ejemplo de código muestra cómo configurar la unidad de intervalo entre etiquetas en un eje:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert chart. | |
Shape shape = builder.InsertChart(ChartType.Column, 432, 252); | |
Chart chart = shape.Chart; | |
// Clear demo data. | |
chart.Series.Clear(); | |
// Fill data. | |
chart.Series.Add("AW Series 1", | |
new string[] { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }, | |
new double[] { 1.2, 0.3, 2.1, 2.9, 4.2 }); | |
chart.AxisX.TickLabelSpacing = 2; | |
dataDir = dataDir + @"SetIntervalUnitBetweenLabelsOnAxis_out.docx"; | |
doc.Save(dataDir); |
Cómo ocultar el eje del gráfico
Si desea mostrar u ocultar el eje del gráfico, simplemente puede lograrlo estableciendo el valor de la propiedad ChartAxis.Hidden
.
El siguiente ejemplo de código muestra cómo ocultar el eje Y del gráfico:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
// Insert chart. | |
Shape shape = builder.InsertChart(ChartType.Column, 432, 252); | |
Chart chart = shape.Chart; | |
// Clear demo data. | |
chart.Series.Clear(); | |
// Fill data. | |
chart.Series.Add("AW Series 1", | |
new string[] { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }, | |
new double[] { 1.2, 0.3, 2.1, 2.9, 4.2 }); | |
// Hide the Y axis. | |
chart.AxisY.Hidden = true; | |
dataDir = dataDir + @"HideChartAxis_out.docx"; | |
doc.Save(dataDir); |
Cómo alinear la etiqueta del gráfico
Si desea establecer una alineación de texto para etiquetas de varias líneas, simplemente puede lograrlo estableciendo el valor de la propiedad TickLabels.Alignment.
El siguiente ejemplo de código muestra cómo marcar la alineación de la etiqueta:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(dataDir + "Document.docx"); | |
Shape shape = (Shape)doc.GetChild(NodeType.Shape, 0, true); | |
ChartAxis axis = shape.Chart.AxisX; | |
//This property has effect only for multi-line labels. | |
axis.TickLabelAlignment = ParagraphAlignment.Right; | |
doc.Save(dataDir + "Document_out.docx"); |
Cómo configurar el formato de relleno y trazo
Se puede configurar el formato de relleno y trazo para series de gráficos, puntos de datos y marcadores. Para hacer esto, necesita usar las propiedades del tipo ChartFormat en las clases ChartSeries, ChartDataPoint y ChartMarker, así como alias para algunas propiedades, como ForeColor, BackColor, Visible y Transparency en la clase Stroke
.
El siguiente ejemplo de código muestra cómo configurar el color de la serie:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
Chart chart = shape.Chart;
ChartSeriesCollection seriesColl = chart.Series;
// Delete default generated series.
seriesColl.Clear();
// Create category names array.
string[] categories = new string[] { "AW Category 1", "AW Category 2" };
// Adding new series. Value and category arrays must be the same size.
ChartSeries series1 = seriesColl.Add("AW Series 1", categories, new double[] { 1, 2 });
ChartSeries series2 = seriesColl.Add("AW Series 2", categories, new double[] { 3, 4 });
ChartSeries series3 = seriesColl.Add("AW Series 3", categories, new double[] { 5, 6 });
// Set series color.
series1.Format.Fill.ForeColor = Color.Red;
series2.Format.Fill.ForeColor = Color.Yellow;
series3.Format.Fill.ForeColor = Color.Blue;
doc.Save(dir + "ColumnColor.docx");
El siguiente ejemplo de código muestra cómo establecer el color y el grosor de la línea:
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
ChartSeriesCollection seriesColl = chart.Series;
// Delete default generated series.
seriesColl.Clear();
// Adding new series.
ChartSeries series1 = seriesColl.Add("AW Series 1", new double[] { 0.7, 1.8, 2.6 },
new double[] { 2.7, 3.2, 0.8 });
ChartSeries series2 = seriesColl.Add("AW Series 2", new double[] { 0.5, 1.5, 2.5 },
new double[] { 3, 1, 2 });
// Set series color.
series1.Format.Stroke.ForeColor = Color.Red;
series1.Format.Stroke.Weight = 5;
series2.Format.Stroke.ForeColor = Color.LightGreen;
series2.Format.Stroke.Weight = 5;
doc.Save(dir + "LineColorAndWeight.docx");