在饼图中自定义切片或扇区的颜色
Contents
[
Hide
]
本文介绍如何向饼图切片/扇区添加自定义颜色。默认情况下,饼图使用 Microsoft Excel 默认模板。要使用其他颜色,可以重新定义图表中的颜色。
设置饼图单独切片或扇区的自定义颜色:
- 访问 Series 对象的 ChartPoint。
- 使用 ChartPoint.getArea().setForegroundColor() 方法分配所选颜色。
本文还解释了如何设置:
- 图表的类别数据。
- 与单元格相关联的图表标题。
- 图表标题字体设置。
- 图例的位置。
ChartPoint.getArea().setForegroundColor() 不仅适用于饼图,还可用于所有类型的图表。
饼图中的自定义切片颜色
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); |