Travailler avec des graphiques

La nouvelle méthode insertChart a été ajoutée à la classe DocumentBuilder. Voyons donc comment insérer un simple histogramme dans le document en utilisant la méthode insertChart.

Comment insérer un graphique à partir de zéro en utilisant Aspose.Words

Dans cette section, nous allons apprendre à insérer un graphique dans un document.

Insérer Un Graphique à Colonnes

L’exemple de code suivant montre comment insérer un histogramme:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
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.getChart();
// Get chart series collection.
ChartSeriesCollection seriesColl = chart.getSeries();
// 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});
doc.save(dataDir + "TestInsertChartColumn1_out.docx");

Le code produit le résultat suivant:

column-chart-aspose-words-java-1

Il existe quatre surcharges différentes pour la méthode d’ajout de séries, qui ont été exposées pour couvrir toutes les variantes possibles de sources de données pour tous les types de graphiques:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert Column chart.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
Chart chart = shape.getChart();
// Use this overload to add series to any type of Bar, Column, Line and Surface charts.
chart.getSeries().add("AW Series 1", new String[]{"AW Category 1", "AW Category 2"}, new double[]{1, 2});
doc.save(dataDir + "TestInsertColumnChart2_out.docx");

Le code produit le résultat suivant:

column-chart-aspose-words-java-2

Insérer un Graphique en Nuage de Points

L’exemple de code suivant montre comment insérer un nuage de points:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert Scatter chart.
Shape shape = builder.insertChart(ChartType.SCATTER, 432, 252);
Chart chart = shape.getChart();
// Use this overload to add series to any type of Scatter charts.
chart.getSeries().add("AW Series 1", new double[]{0.7, 1.8, 2.6}, new double[]{2.7, 3.2, 0.8});
doc.save(dataDir + "TestInsertScatterChart_out.docx");

Le code produit le résultat suivant:

scutter-chart-aspose-words-java

Insérer un Graphique en Aires

L’exemple de code suivant montre comment insérer un graphique en aires:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert Area chart.
Shape shape = builder.insertChart(ChartType.AREA, 432, 252);
Chart chart = shape.getChart();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date1 = sdf.parse("01/01/2016");
Date date2 = sdf.parse("02/02/2016");
Date date3 = sdf.parse("03/03/2016");
Date date4 = sdf.parse("04/04/2016");
Date date5 = sdf.parse("05/05/2016");
// Use this overload to add series to any type of Area, Radar and Stock charts.
chart.getSeries().add("AW Series 1", new Date[]{date1, date2, date3, date4, date5}, new double[]{32, 32, 28, 12, 15});
doc.save(dataDir + "TestInsertAreaChart_out.docx");

Le code produit le résultat suivant:

area-chart-aspose-words-java

Insérer un Graphique à Bulles

L’exemple de code suivant montre comment insérer un graphique à bulles:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert Bubble chart.
Shape shape = builder.insertChart(ChartType.BUBBLE, 432, 252);
Chart chart = shape.getChart();
// Use this overload to add series to any type of Bubble charts.
chart.getSeries().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});
doc.save(dataDir + "TestInsertBubbleChart_out.docx");

Le code produit le résultat suivant:

bubble-chart-aspose-words-java

Utilisation de graphiques via Shape.Chart Objet

Une fois le graphique inséré et rempli de données, vous pouvez modifier son apparence. la propriété Shape.Chart contient toutes les options liées au graphique disponibles via le public API.

Par exemple, modifions le comportement du titre ou de la légende du graphique:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertChart(ChartType.LINE, 432, 252);
Chart chart = shape.getChart();
// Determines whether the title shall be shown for this chart. Default is true.
chart.getTitle().setShow(true);
// Setting chart Title.
chart.getTitle().setText("Sample Line Chart Title");
// Determines whether other chart elements shall be allowed to overlap title.
chart.getTitle().setOverlay(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.getLegend().setPosition(LegendPosition.LEFT);
chart.getLegend().setOverlay(true);
doc.save(dataDir + "ChartAppearance_out.docx");

Le code génère les résultats suivants:

line-chart-aspose-words-java-1

Comment travailler avec ChartSeriesCollection du graphique

Examinons la collection ChartSeries. Toutes les séries de graphiques sont disponibles via la collection chart.getSeries(), qui est Iterable:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertChart(ChartType.LINE, 432, 252);
// Chart property of Shape contains all chart related options.
Chart chart = shape.getChart();
// Get chart series collection.
ChartSeriesCollection seriesCollection = chart.getSeries();
// Check series count.
System.out.println(seriesCollection.getCount());

Vous pouvez supprimer les séries une par une ou les effacer toutes ainsi qu’en ajouter une nouvelle si nécessaire. Le graphique nouvellement inséré a des séries par défaut ajoutées à cette collection. Pour les supprimer, vous devez appeler la méthode chart.getSeries().clear().

Travailler avec une seule classe ChartSeries

Voici comment travailler avec une série particulière.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertChart(ChartType.LINE, 432, 252);
// Get first series.
ChartSeries series0 = shape.getChart().getSeries().get(0);
// Get second series.
ChartSeries series1 = shape.getChart().getSeries().get(1);
// Change first series name.
series0.setName("My Name1");
// Change second series name.
series1.setName("My Name2");
// You can also specify whether the line connecting the points on the chart shall be smoothed using Catmull-Rom splines.
series0.setSmooth(true);
series1.setSmooth(true);
doc.save(dataDir + "SingleChartSeries_out.docx");

Veuillez voir le résultat ci-dessous:

line-chart-aspose-words-java-2

Tous les ChartSeries simples ont des options ChartDataPoint par défaut, veuillez essayer d’utiliser le code suivant pour les modifier:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertChart(ChartType.LINE, 432, 252);
// Get first series.
ChartSeries series0 = shape.getChart().getSeries().get(0);
// Get second series.
ChartSeries series1 = shape.getChart().getSeries().get(1);
// Specifies whether by default the parent element shall inverts its colors if the value is negative.
series0.setInvertIfNegative(true);
// Set default marker symbol and size.
series0.getMarker().setSymbol(MarkerSymbol.CIRCLE);
series0.getMarker().setSize(15);
series1.getMarker().setSymbol(MarkerSymbol.STAR);
series1.getMarker().setSize(10);
doc.save(dataDir + "ChartDataPoints_out.docx");//

line-chart-aspose-words-java3

Comment travailler avec un seul ChartDataPoint d’un ChartSeries

En utilisant ChartDataPoint, vous pouvez personnaliser la mise en forme d’un seul point de données de la série de graphiques:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertChart(ChartType.LINE, 432, 252);
// Get first series.
ChartSeries series0 = shape.getChart().getSeries().get(0);
// Get second series.
ChartSeries series1 = shape.getChart().getSeries().get(1);
ChartDataPointCollection dataPointCollection = series0.getDataPoints();
// 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.setExplosion(50);
// Set marker symbol and size.
dataPoint00.getMarker().setSymbol(MarkerSymbol.CIRCLE);
dataPoint00.getMarker().setSize(15);
dataPoint01.getMarker().setSymbol(MarkerSymbol.DIAMOND);
dataPoint01.getMarker().setSize(20);
// Add data point to the third point of the second series.
ChartDataPoint dataPoint12 = series1.getDataPoints().add(2);
dataPoint12.setInvertIfNegative(true);
dataPoint12.getMarker().setSymbol(MarkerSymbol.STAR);
dataPoint12.getMarker().setSize(20);
doc.save(dataDir + "SingleChartDataPointOfAChartSeries_out.docx");

Veuillez voir le résultat ci-dessous:

line-chart-aspose-words-java-4

Comment travailler avec ChartDataLabel d’un seul ChartSeries

En utilisant ChartDataLabel, vous pouvez spécifier le formatage d’une seule étiquette de données de la série de graphiques, comme afficher / masquer LegendKey, CategoryName, SeriesName, Valeur etc.:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertChart(ChartType.BAR, 432, 252);
// Get first series.
ChartSeries series0 = shape.getChart().getSeries().get(0);
series0.hasDataLabels(true);
// Set properties.
series0.getDataLabels().setShowLegendKey(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.
series0.getDataLabels().setShowLeaderLines(true);
series0.getDataLabels().setShowCategoryName(false);
series0.getDataLabels().setShowPercentage(false);
series0.getDataLabels().setShowSeriesName(true);
series0.getDataLabels().setShowValue(true);
series0.getDataLabels().setSeparator("/");
series0.getDataLabels().setShowValue(true);
doc.save(dataDir + "ChartDataLabelOfASingleChartSeries_out.docx");

Veuillez voir le résultat ci-dessous:

bar-chart-aspose-words-java

Comment définir les Options par défaut pour ChartDataLabels de ChartSeries

La classe ChartDataLabelCollection définit des propriétés qui peuvent être utilisées pour définir les options par défaut pour ChartDataLabels pour le graphique Series. Ces propriétés comprennent setShowCategoryName, setShowBubbleSize, setShowPercentage, setShowSeriesName, setShowValue etc:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertChart(ChartType.PIE, 432, 252);
Chart chart = shape.getChart();
chart.getSeries().clear();
ChartSeries series = chart.getSeries().add("Series 1", new String[] { "Category1", "Category2", "Category3" },
new double[] { 2.7, 3.2, 0.8 });
ChartDataLabelCollection labels = series.getDataLabels();
labels.setShowPercentage(true);
labels.setShowValue(true);
labels.setShowLeaderLines(false);
labels.setSeparator(" - ");
doc.save(dataDir + "Demo.docx");

Veuillez voir le résultat ci-dessous:

pie-chart-aspose-words-java

Comment Formater le Nombre d’étiquettes de données de graphique

À l’aide de la propriété NumberFormat, vous pouvez spécifier la mise en forme numérique d’une seule étiquette de données du graphique.

L’exemple de code suivant montre comment formater un certain nombre d’étiquettes de données:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
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.getChart();
chart.getTitle().setText("Data Labels With Different Number Format");
// Delete default generated series.
chart.getSeries().clear();
// Add new series
ChartSeries series0 = chart.getSeries().add("AW Series 0", new String[] { "AW0", "AW1", "AW2" },
new double[] { 2.5, 1.5, 3.5 });
series0.hasDataLabels(true);
// Set currency format code.
series0.getDataLabels().get(0).getNumberFormat().setFormatCode("\"$\"#,##0.00");
// Set date format code.
series0.getDataLabels().get(1).getNumberFormat().setFormatCode("d/mm/yyyy");
// Set percentage format code.
series0.getDataLabels().get(2).getNumberFormat().setFormatCode("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.
series0.getDataLabels().get(2).getNumberFormat().isLinkedToSource(true);
doc.save(dataDir + "NumberFormat_DataLabel_out.docx");

Comment définir les Propriétés de l’Axe du Graphique

Si vous souhaitez utiliser l’axe du graphique, la mise à l’échelle et les unités d’affichage pour l’axe des valeurs, veuillez utiliser les classes ChartAxis, AxisDisplayUnit et AxisScaling.

L’exemple de code suivant montre comment définir les propriétés des axes X et Y:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert chart.
Shape shape = builder.insertChart(ChartType.AREA, 432, 252);
Chart chart = shape.getChart();
// Clear demo data.
chart.getSeries().clear();
// Fill data.
chart.getSeries().add("AW Series 1",
new Date[]{new Date(2002, 1, 1), new Date(2002, 6, 1), new Date(2015, 7, 1), new Date(2015, 8, 1), new Date(2015, 9, 1)},
new double[]{640, 320, 280, 120, 150});
ChartAxis xAxis = chart.getAxisX();
ChartAxis yAxis = chart.getAxisY();
// 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.setCategoryType(AxisCategoryType.CATEGORY);
// Define X axis properties.
xAxis.setCrosses(AxisCrosses.CUSTOM);
xAxis.setCrossesAt(3); // measured in display units of the Y axis (hundreds)
xAxis.setReverseOrder(true);
xAxis.setMajorTickMark(AxisTickMark.CROSS);
xAxis.setMinorTickMark(AxisTickMark.OUTSIDE);
xAxis.setTickLabelOffset(200);
// Define Y axis properties.
yAxis.setTickLabelPosition(AxisTickLabelPosition.HIGH);
yAxis.setMajorUnit(100);
yAxis.setMinorUnit(50);
yAxis.getDisplayUnit().setUnit(AxisBuiltInUnit.HUNDREDS);
yAxis.getScaling().setMinimum(new AxisBound(100));
yAxis.getScaling().setMaximum(new AxisBound(700));
dataDir = dataDir + "SetAxisProperties_out.docx";
doc.save(dataDir);

Comment définir la valeur DateTime de l’axe

L’exemple de code suivant montre comment définir des valeurs de date/heure sur les propriétés de l’axe:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert chart.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
Chart chart = shape.getChart();
// Clear demo data.
chart.getSeries().clear();
// Fill data.
chart.getSeries().add("AW Series 1",
new Date[]{new Date(2017, 11, 06), new Date(2017, 11, 9), new Date(2017, 11, 15),
new Date(2017, 11, 21), new Date(2017, 11, 25), new Date(2017, 11, 29)},
new double[]{1.2, 0.3, 2.1, 2.9, 4.2, 5.3}
);
// Set X axis bounds.
ChartAxis xAxis = chart.getAxisX();
xAxis.getScaling().setMinimum(new AxisBound(new Date(2017, 11, 5).getTime()));
xAxis.getScaling().setMaximum(new AxisBound(new Date(2017, 12, 3).getTime()));
// Set major units to a week and minor units to a day.
xAxis.setMajorUnit(7);
xAxis.setMinorUnit(1);
xAxis.setMajorTickMark(AxisTickMark.CROSS);
xAxis.setMinorTickMark(AxisTickMark.OUTSIDE);
dataDir = dataDir + "SetDateTimeValuesToAxis_out.docx";
doc.save(dataDir);

Comment formater la Valeur Numérique de l’Axe

L’exemple de code suivant montre comment modifier le format des nombres sur l’axe des valeurs:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert chart.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
Chart chart = shape.getChart();
// Clear demo data.
chart.getSeries().clear();
// Fill data.
chart.getSeries().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.getAxisY().getNumberFormat().setFormatCode("#,##0");
dataDir = dataDir + "FormatAxisNumber_out.docx";
doc.save(dataDir);

Comment définir les limites de l’Axe

La classe AxisBound représente une limite minimale ou maximale de valeurs d’axe. Bound peut être spécifié sous forme numérique, date-heure ou une valeur spéciale “auto”.

L’exemple de code suivant montre comment définir les limites d’un axe:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert chart.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
Chart chart = shape.getChart();
// Clear demo data.
chart.getSeries().clear();
// Fill data.
chart.getSeries().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.getAxisY().getScaling().setMinimum(new AxisBound(0));
chart.getAxisY().getScaling().setMaximum(new AxisBound(6));
dataDir = dataDir + "SetboundsOfAxis_out.docx";
doc.save(dataDir);

Comment Définir l’Unité d’Intervalle Entre les Étiquettes

L’exemple de code suivant montre comment définir l’unité d’intervalle entre les étiquettes sur un axe:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert chart.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
Chart chart = shape.getChart();
// Clear demo data.
chart.getSeries().clear();
// Fill data.
chart.getSeries().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.getAxisX().setTickLabelSpacing(2);
dataDir = dataDir + "SetIntervalUnitBetweenLabelsOnAxis_out.docx";
doc.save(dataDir);

Comment masquer l’Axe du graphique

Si vous souhaitez afficher ou masquer l’axe du graphique, vous pouvez simplement y parvenir en définissant la valeur de la propriété ChartAxis.Hidden.

L’exemple de code suivant montre comment masquer l’axe des ordonnées du graphique:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Insert chart.
Shape shape = builder.insertChart(ChartType.COLUMN, 432, 252);
Chart chart = shape.getChart();
// Clear demo data.
chart.getSeries().clear();
// Fill data.
chart.getSeries().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.getAxisY().setHidden(true);
dataDir = dataDir + "HideChartAxis_out.docx";
doc.save(dataDir);

Comment Aligner l’Étiquette du Graphique

Si vous souhaitez définir un alignement de texte pour les étiquettes multilignes,vous pouvez simplement y parvenir en définissant la valeur de la propriété setTickLabelAlignment().

L’exemple de code suivant montre comment cocher l’alignement des étiquettes:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document(dataDir + "Document.docx");
Shape shape = (Shape) doc.getChild(NodeType.SHAPE, 0, true);
ChartAxis axis = shape.getChart().getAxisX();
//This property has effect only for multi-line labels.
axis.setTickLabelAlignment(ParagraphAlignment.RIGHT);
doc.save(dataDir + "Document_out.docx");

Comment définir le Remplissage et le formatage des traits

La mise en forme de remplissage et de trait peut être définie pour les séries de graphiques, les points de données et les marqueurs. Pour ce faire, vous devez utiliser les propriétés du type ChartFormat dans les classes ChartSeries, ChartDataPoint et ChartMarker, ainsi que des alias pour certaines propriétés, telles que ForeColor, BackColor, Visible et Transparence dans la classe Stroke.

L’exemple de code suivant montre comment définir la couleur de la série:

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("ColumnColor.docx");

L’exemple de code suivant montre comment définir la couleur et le poids de la ligne:

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("LineColorAndWeight.docx");