如何创建组合图表

可能的使用场景

Excel中的组合图表让您能够利用此选项,因为您可以轻松地组合两种或更多种图表类型,以使您的数据易于理解。当您的数据包含多种值(包括价格和交易量)时,组合图表是有用的。此外,当您的数据数字在系列之间有明显变化时,组合图表是可行的。 以以下数据集为例,我们可以观察到这些数据与VHCL中提到的数据相当相似。如果我们希望将与“总收入”对应的series0可视化为线图表,应该如何操作?

todo:image_alt_text

组合图表

运行以下代码后,您将看到下面展示的组合图表。

todo:image_alt_text

示例代码

以下示例代码加载了示例Excel文件并生成了输出Excel文件

Workbook workbook = new Workbook("combo.xlsx");
Worksheet worksheet = workbook.getWorksheets().get(0);
int i = worksheet.getCharts().add(ChartType.STOCK_VOLUME_HIGH_LOW_CLOSE,15, 0, 35, 12);
Chart chart = worksheet.getCharts().get(i);
chart.setShowLegend(true);
chart.getTitle().setText("Combo Chart");
chart.getTitle().setVisible(true);
chart.getLegend().setPosition(LegendPositionType.BOTTOM);
chart.setChartDataRange("A1:E12",true);
chart.getNSeries().setCategoryData("A2:A12");
for(int j = 0;j<chart.getNSeries().getCount();j++)
{
switch (j) {
case 1:
chart.getNSeries().get(j).getMarker().setMarkerStyle(ChartMarkerType.CIRCLE);
chart.getNSeries().get(j).getMarker().setMarkerSize(15);
chart.getNSeries().get(j).getMarker().getArea().setFormatting(FormattingType.CUSTOM);
chart.getNSeries().get(j).getMarker().getArea().setForegroundColor(com.aspose.cells.Color.getPink());
chart.getNSeries().get(j).getBorder().setVisible(false);
break;
case 2:
chart.getNSeries().get(j).getMarker().setMarkerStyle(ChartMarkerType.DASH);
chart.getNSeries().get(j).getMarker().setMarkerSize(15);
chart.getNSeries().get(j).getMarker().getArea().setFormatting(FormattingType.CUSTOM);
chart.getNSeries().get(j).getMarker().getArea().setForegroundColor(com.aspose.cells.Color.getOrange());
chart.getNSeries().get(j).getBorder().setVisible(false);
break;
case 3:
chart.getNSeries().get(j).getMarker().setMarkerStyle(ChartMarkerType.SQUARE);
chart.getNSeries().get(j).getMarker().setMarkerSize(15);
chart.getNSeries().get(j).getMarker().getArea().setFormatting(FormattingType.CUSTOM);
chart.getNSeries().get(j).getMarker().getArea().setForegroundColor(com.aspose.cells.Color.getLightBlue());
chart.getNSeries().get(j).getBorder().setVisible(false);
break;
}
}
chart.getNSeries().get(0).setType(ChartType.LINE);
chart.getPlotArea().getArea().setFormatting(FormattingType.NONE);
workbook.save("out.xlsx");