# Configure Chart Series

Work with DsExcel to configure the chart series using data point, data label, trendline, chart group, and more.

## Content

DsExcel Java allows users to configure chart series in the following ways:

* [DataPoint](/document-solutions/java-excel-api/docs/online/Features/UseChart/CustomizeChartObjects/Series/ConfigureChartSeries#datapoint)
* [DataLabel](/document-solutions/java-excel-api/docs/online/Features/UseChart/CustomizeChartObjects/Series/ConfigureChartSeries#datalabel)
* [Trendline](/document-solutions/java-excel-api/docs/online/Features/UseChart/CustomizeChartObjects/Series/ConfigureChartSeries#trendline)
* [ChartGroup](/document-solutions/java-excel-api/docs/online/Features/UseChart/CustomizeChartObjects/Series/ConfigureChartSeries#chart-group)
* [DropLine,HiLoLine and SeriesLine](/document-solutions/java-excel-api/docs/online/Features/UseChart/CustomizeChartObjects/Series/ConfigureChartSeries#dropline-hiloline-and-seriesline)
* [Up-Down Bars](/document-solutions/java-excel-api/docs/online/Features/UseChart/CustomizeChartObjects/Series/ConfigureChartSeries#up-down-bars)

## DataPoint

The Points collection in DsExcel Java is used to represent all the points in a specific series and the indexer notation of the [IPoints](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IPoints.html) interface to get a specific point in the series. Also, you can use the [getDataLabel](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendline.html#getDataLabel) method of the [IPoint](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IPoint.html) interface in order to get data label of a specific point.
**Set the format of DataPoint**
In order to set data point format for the chart added in your worksheet, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 250, 20, 360, 230);
worksheet.getRange("A1:D6").setValue(
        new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 }, { "Item2", -51, -36, 27 },
                { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 }, { "Item5", 23, 69, 69 } });
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);
ISeries series1 = shape.getChart().getSeriesCollection().get(0);
        
series1.getPoints().get(2).getFormat().getFill().getColor().setRGB(Color.FromArgb(0, 176, 240));
series1.getPoints().get(2).getFormat().getLine().getColor().setRGB(Color.GetBlue());
```

**Configure secondary section for pie of a pie chart**
You can use the [setSecondaryPlot](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IPoint.html#setSecondaryPlot) method of the IPoint interface to set if the point lies in the secondary section of either a pie of pie chart or a bar of pie chart.
In order to configure secondary section for pie of a pie chart, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.PieOfPie, 250, 20, 360, 230);
worksheet.getRange("A1:D6").setValue(
        new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 }, { "Item2", -51, -36, 27 },
                { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 }, { "Item5", 23, 69, 69 } });
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);
        
ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.setHasDataLabels(true);
        
shape.getChart().getChartGroups().get(0).setSplitType(ChartSplitType.SplitByCustomSplit);
series1.getPoints().get(0).setSecondaryPlot(true);
series1.getPoints().get(1).setSecondaryPlot(false);
series1.getPoints().get(2).setSecondaryPlot(true);
series1.getPoints().get(3).setSecondaryPlot(false);
series1.getPoints().get(4).setSecondaryPlot(true);
```

## DataLabel

You can use the DataLabels collection to represent the collection of all the data labels for a specific series.
The [getFormat](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html#getFormat) method of the [IDataLabel](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html) interface can be used to set font style, fill, line and 3-D formatting for all the data labels of a specific series. Users can also configure the layout of the data labels using other methods of the IDataLabel interface.
**Set all data labels and specific data label format for series**
In order to set all data labels and specific data label format of a series, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 250, 20, 360, 230);
worksheet.getRange("A1:B5").setValue(
        new Object[][] { { null, "S1" }, { "Item1", -20 }, { "Item2", 30 }, { "Item3", 50 }, { "Item3", 40 } });
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:B5"), RowCol.Columns, true, true);
        
ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.setHasDataLabels(true);
        
// set series1's all data label's format.
series1.getDataLabels().getFormat().getFill().getColor().setRGB(Color.GetPink());
series1.getDataLabels().getFormat().getLine().getColor().setRGB(Color.GetGreen());
series1.getDataLabels().getFormat().getLine().setWeight(1);

// set series1's specific data label's format.
series1.getDataLabels().get(2).getFormat().getFill().getColor().setRGB(Color.GetLightGreen());
series1.getPoints().get(2).getDataLabel().getFormat().getLine().getColor().setRGB(Color.GetGray());
series1.getPoints().get(2).getDataLabel().getFormat().getLine().setWeight(2);
```

**Customize data label text**
In order to set the text of the data label as per your choice, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 250, 20, 360, 230);
worksheet.getRange("A1:B5").setValue(new Object[][] { { null, "S1", "S2" }, { "Item1", -20 }, { "Item2", 30 },
        { "Item3", 50 }, { "Item3", 40 } });
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:B5"), RowCol.Columns, true, true);
ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.setHasDataLabels(true);

// customize data label's text.
series1.getDataLabels().setShowCategoryName(true);
series1.getDataLabels().setShowSeriesName(true);
series1.getDataLabels().setShowLegendKey(true);
```

> !type=note
> Note: With version 7.0, the return value of [getParent](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendline.html#getParent) method of [IDataLabel](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html) interface is changed from **IPoint** to **Object**, which will cause the compilation failure or runtime error in your existing projects. To avoid this, you must add explicit conversion of the object to IPoint as follows:
>
> ```Java
> // Following will cause a compilation error.
> IPoint pt = series1.getDataLabels().get(0).getParent();
> // Add explicit conversion to IPoint.
> IPoint pt = (IPoint)series1.getDataLabels().get(0).getParent();
> ```

## Trendline

The Trendlines collection in DsExcel Java is used to represent a collection of trend lines for a specific series. You can use the [get](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendlines.html#get) method of the [ITrendlines](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendlines.html) interface to create a new trendline for a specific series. Also, the indexer notation of the ITrendlines interface can be used to get a specific trend line.
**Add trendline for series and configure its style**
In order to add trendline for series and configure its style, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.getTrendlines().add();
series1.getTrendlines().get(0).setType(TrendlineType.Linear);
series1.getTrendlines().get(0).setForward(5);
series1.getTrendlines().get(0).setBackward(0.5);
series1.getTrendlines().get(0).setIntercept(2.5);
series1.getTrendlines().get(0).setDisplayEquation(true);
series1.getTrendlines().get(0).setDisplayRSquared(true);
```

**Add two trendlines for one series**
In order to add two trendlines for one series, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.getTrendlines().add();
series1.getTrendlines().get(0).setType(TrendlineType.Linear);
series1.getTrendlines().get(0).setForward(5);
series1.getTrendlines().get(0).setBackward(0.5);
series1.getTrendlines().get(0).setIntercept(2.5);
series1.getTrendlines().get(0).setDisplayEquation(true);
series1.getTrendlines().get(0).setDisplayRSquared(true);

series1.getTrendlines().add();
series1.getTrendlines().get(1).setType(TrendlineType.Polynomial);
series1.getTrendlines().get(1).setOrder(3);
```

**Set trendline's name**
You can also set the trendline's name in DsExcel using the [setName](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendline.html#setName) method of [ITrendline](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendline.html) interface. The trendline's name can also be exported to a PDF document.
Refer to the following example code to set trendline's name in DsExcel.

```Java
// Initialize workbook
Workbook workbook = new Workbook();
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);

// Add a chart
IShape columnChart = worksheet.getShapes().addChart(ChartType.ColumnClustered, 300, 10, 300, 300);       
        
worksheet.getRange("A1:D6").setValue(new Object[][] 
{
{null, "S1", "S2", "S3"},
{"Item1", 10, 25, 25},
{"Item2", -51, -36, 27},
{"Item3", 52, -85, -30},
{"Item4", 22, 65, 65},
{"Item5", 23, 69, 69}
});

// Add series
columnChart.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

// Get first series
ISeries series1 = columnChart.getChart().getSeriesCollection().get(0);

// Add a trend line
ITrendline trendline = series1.getTrendlines().add();

// Set trend line's name.
trendline.setName("Theoretical data");

//save to an excel file
workbook.save("TrendLineName.xlsx");
```

**Set trendline's label format**
You can also format the trendline equation label and export it to a PDF document, HTML file, or image using [getDataLabel](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendline.html#getDataLabel) method in ITrendline interface, which gets the data label associated with the trendline. getDataLabel returns value only when [setDisplayEquation](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendline.html#setDisplayEquation) or [setDisplayRSquared](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendline.html#setDisplayRSquared) of ITrendline interface is true. If both of them are false, the getDataLabel method will return null.
You can use [getFont](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html#getFont), [getFormat](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html#getFormat), [getNumberFormat](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html#getNumberFormat), [getOrientation](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html#getOrientation), [getDirection](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html#getDirection), and [getAutoText](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html#getAutoText) methods of [IDataLabel](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html) interface to format the trendline equation label. DsExcel also provides [delete](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IDataLabel.html#delete) method to delete the trendline equation label.
Refer to the following example code to format the data label of the trendline:

```Java
// Initialize Workbook.
IWorkbook workbook = new Workbook();

// Create a worksheet.
IWorksheet worksheet = workbook.getWorksheets().get(0);

// Add XYScatter chart.
IShape shape = worksheet.getShapes().addChart(ChartType.XYScatter, 250, 20, 360, 230);
worksheet.getRange("A1:C11").setValue(new Object[][] {
    { null, "Mktng Exp", "Revenue" },
    { "Company 1", 1849, 2911 },
    { "Company 2", 2708, 5777 },
    { "Company 3", 3474, 8625 },
    { "Company 4", 4681, 9171 },
    { "Company 5", 5205, 10308 },
    { "Company 6", 5982, 11779 },
    { "Company 7", 8371, 12138 },
    { "Company 8", 8457, 17074 },
    { "Company 9", 9554, 15729 },
    { "Company 10", 9604, 19610 }
    });
shape.getChart().getSeriesCollection().add(worksheet.getRange("B1:C11"), RowCol.Columns, true, true);
ISeries series1 = shape.getChart().getSeriesCollection().get(0);

// Add Trendline.
ITrendline trendline = series1.getTrendlines().add();
trendline.setType(TrendlineType.Linear);

// Display equation for the trendline.
trendline.setDisplayEquation(true);

// Format datalabel for trendline.
IDataLabel trendlineDataLabel = trendline.getDataLabel();
trendlineDataLabel.getFont().getColor().setRGB(Color.GetPurple());
trendlineDataLabel.getFont().setSize(11);
trendlineDataLabel.getFormat().getFill().getColor().setObjectThemeColor(ThemeColor.Accent4);
trendlineDataLabel.getFormat().getLine().getColor().setObjectThemeColor(ThemeColor.Accent2);

// Set paper size for PDF export.
worksheet.getPageSetup().setPaperSize(PaperSize.A3);

// Save the workbook.
workbook.save("DataLabelTrendline.xlsx");

// Export the workbook as a PDF document.
workbook.save("DataLabelTrendline.pdf");
```

[getParent](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ITrendline.html#getParent) method (ITrendline.getDataLabel().getParent()) will return the parent object of the specified trendline. Its return value type is an object with ITrendline as the return value.

```Java
ITrendline trendline = (ITrendline)trendline.getDataLabel().getParent();
```

> !type=note
> **Note**: The trendline equation label does not support the following methods of IDataLabel interface; hence, calling them will throw a NotSupportedException:
>
> * getPosition
> * getSeparator
> * getShowBubbleSize
> * getShowCategoryName
> * getShowLegendKey
> * getShowPercentage
> * getShowSeriesName
> * getShowValue
> * getNumberFormatLinked
> * getTextFrame

**Limitations**
SpreadJS only supports the default equation and R-value; therefore, DsExcel cannot export the trendline data format to JSON and SJS.

## Chart Group

A Chart Group possesses common settings for one or more series. Typically, it is a group of specific featured series.
**Set varied colors for column chart with one series**
In order to set different colors for a column chart (that contains only one series), refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

shape.getChart().getSeriesCollection().get(2).delete();
shape.getChart().getSeriesCollection().get(1).delete();
        
// Chart's series count is 1.
// int count = shape.getChart().getSeriesCollection().getCount();
shape.getChart().getSeriesCollection().getCount();
        
// set vary colors for column chart which only has one series.
shape.getChart().getColumnGroups().get(0).setVaryByCategories(true);
```

**Set split setting and gap width for pie of a pie chart**
In order to set split setting and gap width for pie of a pie chart, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.PieOfPie, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.setHasDataLabels(true);

shape.getChart().getPieGroups().get(0).setSplitType(ChartSplitType.SplitByValue);
shape.getChart().getPieGroups().get(0).setSplitValue(20);
shape.getChart().getPieGroups().get(0).setGapWidth(350);
```

**Set gap width of column chart and overlap**
In order to set the gap width of the column chart along with overlap, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.setHasDataLabels(true);

shape.getChart().getColumnGroups().get(0).setGapWidth(120);
shape.getChart().getColumnGroups().get(0).setOverlap(-20);
```

**Configure the layout of the bubble chart**
In order to configure the layout of the bubble chart as per your preferences, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.Bubble, 250, 20, 360, 230);
Object[][] data = new Object[][] {
    {"Blue", null, null },
    {125, 750, 3 },
    {25, 625, 7 },
    {75, 875, 5 },
    {175, 625, 6},
    {"Red",null,null },
    {125 ,500 , 10 },
    {25, 250, 1 },
    {75, 125, 5 },
    {175, 250, 8 } 
    };
worksheet.getRange("A2:C10").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A2:C5"), RowCol.Columns, true, true);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A7:C10"), RowCol.Columns, true, true);

ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.setHasDataLabels(true);

shape.getChart().getXYGroups().get(0).setBubbleScale(150);
shape.getChart().getXYGroups().get(0).setSizeRepresents(SizeRepresents.SizeIsArea);
shape.getChart().getXYGroups().get(0).setShowNegativeBubbles(true);
```

**Configure the layout of the doughnut chart**
Refer to the following example code to configure the layout of the doughnut chart as per your preferences.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.Doughnut, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

ISeries series1 = shape.getChart().getSeriesCollection().get(0);
series1.setHasDataLabels(true);

shape.getChart().getDoughnutGroups().get(0).setFirstSliceAngle(50);
shape.getChart().getDoughnutGroups().get(0).setDoughnutHoleSize(20);
```

## Dropline, HiLoline and SeriesLine

You can use the methods of the [IChartGroup](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/IChartGroup.html) interface to configure Dropline, HiLoline and Series lines in a chart.
**Configure the drop lines of the line chart**
In order to configure the drop lines of the line chart as per your preferences, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.Line, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

shape.getChart().getLineGroups().get(0).setHasDropLines(true);
shape.getChart().getLineGroups().get(0).getDropLines().getFormat().getLine().getColor().setRGB(Color.GetRed());
```

**Configure the high-low lines of the line chart**
In order to configure the high-low lines of the line chart as per your preferences, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.Line, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);

shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

shape.getChart().getLineGroups().get(0).setHasHiLoLines(true);
shape.getChart().getLineGroups().get(0).getHiLoLines().getFormat().getLine().getColor().setRGB(Color.GetRed());
```

**Configure the series lines for column chart**
In order to configure the column chart's series lines as per your preferences, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnStacked, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

shape.getChart().getColumnGroups().get(0).setHasSeriesLines(true);
shape.getChart().getColumnGroups().get(0).getSeriesLines().getFormat().getLine().getColor()
        .setRGB(Color.GetRed());
```

**Configure the connector lines for pie of a pie chart**
In order to configure the connector lines for pie of a pie chart as per your preferences, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.PieOfPie, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

shape.getChart().getPieGroups().get(0).setHasSeriesLines(true);
shape.getChart().getPieGroups().get(0).getSeriesLines().getFormat().getLine().getColor().setRGB(Color.GetRed());
```

## Up-Down Bars

You can use the methods of the IChartGroup interface to configure the style of the up bars and the down bars as per your preferences.
**Configure the up-down bars for the line chart**
In order to configure the up-down bars for the line chart as per your preferences, refer to the following example code.

```Java
IShape shape = worksheet.getShapes().addChart(ChartType.Line, 200, 30, 300, 300);
Object[][] data = new Object[][] { { null, "S1", "S2", "S3" }, { "Item1", 10, 25, 25 },
        { "Item2", -51, -36, 27 }, { "Item3", 52, -85, -30 }, { "Item4", 22, 65, 65 },
        { "Item5", 23, 69, 69 } };
worksheet.getRange("A1:D6").setValue(data);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);

shape.getChart().getLineGroups().get(0).setHasUpDownBars(true);
shape.getChart().getLineGroups().get(0).getUpBars().getFormat().getFill().getColor().setRGB(Color.GetGreen());
shape.getChart().getLineGroups().get(0).getDownBars().getFormat().getFill().getColor().setRGB(Color.GetRed());
```

## Smooth Line

You can use [setSmooth](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ISeries.html#setSmooth) method of [ISeries](/document-solutions/java-excel-api/api/online/com/grapecity/documents/excel/drawing/ISeries.html) Interface to smoothen the curves of line and scatter charts.
**Configure Smooth Property for Line Chart**
Refer to the following example code to configure setSmooth method for the line chart:

```Java
// Create a workbook.
Workbook workbook = new Workbook();
        
// Get the active sheet.
IWorksheet worksheet = workbook.getActiveSheet();
        
// Set data for the chart.
Object[][] data = new Object[][]
{
    { null , "2017", "2018", "2019", "2020", "2021", "2022", "2023" },
    { "Mobile Phones",0.9,0.13,0.15,0.18,0.17,0.18,0.04 },
    { "Tablets", 0.05, 0.08, 0.12, 0.13, 0.15, 0.17, 0.54 },
    { "Household items",0.43,0.35,0.23,0.13,0.13,0.15,0.16 },
    { "Vehicles",0.51,0.55,0.45,0.55,0.08,0.45,0.46 },
    { "Groceries",0.51,0.55,0.25,0.77,0.05,0.45,0.56 },
    { "Personal care",0.35,0.2,1,0.23,0.33,0.5,1 },
};
        
// Add data to the range.
worksheet.getRange("A1:H7").setValue(data);

// Set style of the range.
worksheet.getRange("A1:H7").getStyle().setHorizontalAlignment(HorizontalAlignment.Center);
worksheet.getRange("A1:A7").setColumnWidth(18);

// Create line chart.
IShape shape = worksheet.getShapes().addChart(ChartType.Line, 10, 150, 400, 200);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:H7"), RowCol.Columns, true, true);
shape.getChart().getChartTitle().setText("Product Sales");

// Set line curve setting.
for (ISeries item : shape.getChart().getSeriesCollection())
{
    // Set Smooth property to true.
    item.setSmooth(true);
}
    
// Save the workbook in xlsx and pdf formats.
workbook.save("SmoothLineChart.xlsx");
workbook.save("SmoothLineChart.pdf");
```