Custom Slice or Sector Colors in Pie Chart
Contents
[
Hide
]
This article explains how to add custom colors to pie chart slices/sectors. By default, pie charts use the Microsoft Excel default template. To use other colors, it is possible to redefine the colors in the chart.
To set the custom color for a pie chart’s individual slices or sectors:
- Access the Series object’s ChartPoint.
- Assign a color of your choice using the ChartPoint.getArea().setForegroundColor() method.
This article also explains how to set:
- A chart’s category data.
- A chart title linked to a cell.
- The chart title font settings.
- The position of the legend.
ChartPoint.getArea().setForegroundColor() is not specific to pie charts but can be used for all types of charts.
Custom slice colors in the pie chart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(CustomSliceOrSectorColorsPieChart.class); | |
// Create a workbook object from the template file | |
Workbook workbook = new Workbook(); | |
// Access the first worksheet. | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Put the sample values used in a pie chart | |
worksheet.getCells().get("C3").putValue("India"); | |
worksheet.getCells().get("C4").putValue("China"); | |
worksheet.getCells().get("C5").putValue("United States"); | |
worksheet.getCells().get("C6").putValue("Russia"); | |
worksheet.getCells().get("C7").putValue("United Kingdom"); | |
worksheet.getCells().get("C8").putValue("Others"); | |
// Put the sample values used in a pie chart | |
worksheet.getCells().get("D2").putValue("% of world population"); | |
worksheet.getCells().get("D3").putValue(25); | |
worksheet.getCells().get("D4").putValue(30); | |
worksheet.getCells().get("D5").putValue(10); | |
worksheet.getCells().get("D6").putValue(13); | |
worksheet.getCells().get("D7").putValue(9); | |
worksheet.getCells().get("D8").putValue(13); | |
// Create a pie chart with desired length and width | |
int pieIdx = worksheet.getCharts().add(ChartType.PIE, 1, 6, 15, 14); | |
// Access the pie chart | |
Chart pie = worksheet.getCharts().get(pieIdx); | |
// Set the pie chart series | |
pie.getNSeries().add("D3:D8", true); | |
// Set the category data | |
pie.getNSeries().setCategoryData("=Sheet1!$C$3:$C$8"); | |
// Set the chart title that is linked to cell D2 | |
pie.getTitle().setLinkedSource("D2"); | |
// Set the legend position at the bottom. | |
pie.getLegend().setPosition(LegendPositionType.BOTTOM); | |
// Set the chart title's font name and color | |
pie.getTitle().getFont().setName("Calibri"); | |
pie.getTitle().getFont().setSize(18); | |
// Access the chart series | |
Series srs = pie.getNSeries().get(0); | |
// Color the indvidual points with custom colors | |
srs.getPoints().get(0).getArea().setForegroundColor(com.aspose.cells.Color.fromArgb(0, 246, 22, 219)); | |
srs.getPoints().get(1).getArea().setForegroundColor(com.aspose.cells.Color.fromArgb(0, 51, 34, 84)); | |
srs.getPoints().get(2).getArea().setForegroundColor(com.aspose.cells.Color.fromArgb(0, 46, 74, 44)); | |
srs.getPoints().get(3).getArea().setForegroundColor(com.aspose.cells.Color.fromArgb(0, 19, 99, 44)); | |
srs.getPoints().get(4).getArea().setForegroundColor(com.aspose.cells.Color.fromArgb(0, 208, 223, 7)); | |
srs.getPoints().get(5).getArea().setForegroundColor(com.aspose.cells.Color.fromArgb(0, 222, 69, 8)); | |
// Autofit all columns | |
worksheet.autoFitColumns(); | |
// Save the workbook | |
workbook.save(dataDir + "output.xlsx", SaveFormat.XLSX); |