如何调整Apache POI生成3D堆叠柱状图的图例及坐标轴标题字体大小
解决方案
你当前调用leftAxis.getOrAddTextProperties()修改的是左侧坐标轴的刻度标签字体,坐标轴标题、图表图例的字体属性需要单独针对对应对象设置,具体修改方式如下:
完整修改后的代码片段
XSSFSheet sheet = wb.getSheetAt(0); // Bar chart coordinates XSSFDrawing drawing = sheet.createDrawingPatriarch(); XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 37, 16, 47); XSSFChart chart = drawing.createChart(anchor); // configure axis properties XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM); XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT); leftAxis.setTitle("Call Duration"); // 新增:修改左侧坐标轴标题字体大小 leftAxis.getTitle().getOrAddTextProperties().setFontSize(8d); // font size for left axis labels (ticks) leftAxis.getOrAddTextProperties().setFontSize(8d); leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); leftAxis.setCrossBetween(AxisCrossBetween.BETWEEN); XDDFChartData data = chart.createData(ChartTypes.BAR3D, bottomAxis, leftAxis); // create legend XDDFChartLegend legend = chart.getOrAddLegend(); legend.setPosition(LegendPosition.BOTTOM); // 新增:修改图例字体大小 legend.getOrAddTextProperties().setFontSize(8d); /*DATA ADDITION HERE*/
如果需要设置字体名称、加粗、斜体、颜色等其他文本属性,也可以通过上述getOrAddTextProperties()返回的XDDFTextProperties对象调用对应方法实现,该配置对3D类图表同样生效。
内容的提问来源于stack exchange,提问作者program_k
相关产品推荐
相关产品推荐

