Trabajar con gráficos

Se agregó un nuevo método insert_chart a la clase DocumentBuilder. Entonces, veamos cómo insertar un gráfico de columnas simple en el documento usando el método DocumentBuilder.insert_chart:

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:

El código produce el siguiente resultado:

create-column-chart-aspose-words-net

Existen métodos add, add_double y add_date, que se expusieron para cubrir todas las variantes posibles de fuentes de datos para todos los tipos de gráficos:

El código produce el siguiente resultado:

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

Insertar gráfico de dispersión

El siguiente ejemplo muestra cómo insertar un gráfico de dispersión.

El código produce el siguiente resultado:

scatter-chart-aspose-words-net

Insertar gráfico de áreas

El siguiente ejemplo de código muestra cómo insertar un gráfico de áreas:

El código produce el siguiente resultado:

area-chart-aspose-words-net

Insertar gráfico de burbujas

El siguiente ejemplo de código muestra cómo insertar un gráfico de burbujas:

El código produce el siguiente resultado:

bubble-chart-aspose-words-net

Trabajar con gráficos a través del objeto 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 comportamiento de la leyenda o el título Chart:

El código genera los siguientes resultados:

line-chart-aspose-words-net

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:

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 chart.series.clear().

Trabajar con una única clase ChartSeries

A continuación se explica cómo trabajar con una serie en particular.

Por favor vea el resultado a continuación:

line-chart-chartseries-aspose-words-net

Todos los ChartSeries individuales tienen opciones de ChartDataPoint predeterminadas; intente usar el siguiente código para cambiarlas:

Por favor vea el resultado a continuación:

line-chart-chartdatapoint-aspose-words-net

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:

Por favor vea el resultado a continuación:

line-chart-datapoint-aspose-words-net

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.

Por favor vea el resultado a continuación:

bar-chart-aspose-words-net

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 series de gráficos. Estas propiedades incluyen show_category_name, show_bubble_size, show_percentage, show_series_name, show_value, etc.

Por favor vea el resultado a continuación:

pie-chart-aspose-words-net

Cómo dar formato al número de etiqueta de datos del gráfico

Con ChartDataLabel.number_format 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:

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:

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:

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:

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:

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:

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:

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 ChartAxis.tick_label_alignment.

El siguiente ejemplo de código muestra cómo marcar la alineación de la etiqueta:

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 propiedades del tipo ChartFormat en las clases ChartSeries, ChartDataPoint y ChartMarker, así como alias para algunas propiedades, como fore_color, back_color, visible y transparency en la clase Stroke.

El siguiente ejemplo de código muestra cómo configurar el color de la serie:

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")

El siguiente ejemplo de código muestra cómo establecer el color y el grosor de la línea:

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")