[]
        
(Showing Draft Content)

图例

图例是可视化的图表元素(与图表上绘制的数据相关联的键),当用户完成添加图表的过程时,这些元素会自动出现在表单中。

通常,图例有助于快速解释图表数据,并位于图表的右侧。此外,它们还允许最终用户在工作表中计算代表不同数据组的系列和系列点。

此外,图例通过列出和标识属于特定序列的数据点来描述序列名称。与数据对应,工作表上出现的每个图例条目都可以借助图例标记以及标识它的图例文本来显示。

在GcExcel Java中,您可以自定义图例文本、配置图例的位置和布局、重置图例项的字体样式、根据需要使用 ILegend 接口, ILegendEntries 接口和 IChart 接口的方法删除图例及其项。

要在图表中配置一些有用的图例设置,请参阅以下示例代码。

IShape shape = worksheet.getShapes().addChart(ChartType.Column3D, 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().setHasLegend(true);
ILegend legend = shape.getChart().getLegend();
        
// position.
legend.setPosition(LegendPosition.Left);
        
// font.
legend.getFont().getColor().setRGB(Color.GetRed());
legend.getFont().setItalic(true);
        
// format.
legend.getFormat().getFill().getColor().setRGB(Color.GetPink());
legend.getFormat().getLine().getColor().setRGB(Color.GetBlue());
        
// Config legend entry font style.
ILegendEntry legendentry = legend.getLegendEntries().get(0);
legendentry.getFont().getColor().setRGB(Color.GetRed());
legendentry.getFont().setSize(15);

如果要从图表中删除图例或特定图例条目,请参阅以下代码示例。

// Delete legend.
IShape shape1 = worksheet.getShapes().addChart(ChartType.ColumnClustered, 250, 20, 360, 230);
shape1.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);
shape1.getChart().setHasLegend(true);
ILegend legend1 = shape1.getChart().getLegend();
legend1.delete();
        
// Delete lengend entry.
IShape shape2 = worksheet.getShapes().addChart(ChartType.ColumnClustered, 250, 20, 360, 230);
shape2.getChart().getSeriesCollection().add(worksheet.getRange("A1:D6"), RowCol.Columns, true, true);
shape2.getChart().setHasLegend(true);
ILegend legend2 = shape.getChart().getLegend();
ILegendEntry legendentry2 = legend.getLegendEntries().get(0);
legendentry2.delete();