如何在 y 系列上創建具有單個圖例的折線圖,而不是在 x 系列上顯示多個圖例int rows = numberOfRows - 1;int cols = headers.size();XSSFDrawing drawing = sheet.createDrawingPatriarch();XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 5, 10, 15);XSSFChart chart = drawing.createChart(anchor);chart.displayBlanksAs(DisplayBlanks.GAP);XDDFChartLegend legend = chart.getOrAddLegend();legend.setPosition(LegendPosition.TOP_RIGHT);// Use a category axis for the bottom axis.XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM);bottomAxis.setOrientation(AxisOrientation.MAX_MIN);bottomAxis.setTitle("Date");XDDFValueAxis rightAxis = chart.createValueAxis(AxisPosition.RIGHT);rightAxis.setTitle("Rates");rightAxis.setCrosses(AxisCrosses.AUTO_ZERO);XDDFChartLegend chartLegend = chart.getOrAddLegend();chartLegend.setPosition(LegendPosition.TOP_RIGHT);chartLegend.setOverlay(false);XDDFLineChartData lineChartData = (XDDFLineChartData) chart.createData(ChartTypes.LINE, bottomAxis, rightAxis);XDDFDataSource<String> xs = XDDFDataSourcesFactory.fromStringCellRange(sheet, new CellRangeAddress(1, rows, 0, 0));for (int col = 1; col < cols; col++) { XDDFNumericalDataSource<Double> ys1 = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(1, rows, col, col)); XDDFLineChartData.Series series1 = (XDDFLineChartData.Series) lineChartData.addSeries(xs, ys1); series1.setTitle(headers.get(col), null); series1.setSmooth(false); series1.setMarkerStyle(MarkerStyle.NONE);}chart.plot(lineChartData);上圖顯示了我當前的繪圖折線圖,y 系列預計只有 1 個圖例,但顯示了多個上圖折線圖是使用 Excel 繪制的,y 系列僅顯示 1 個圖例
1 回答

翻過高山走不出你
TA貢獻1875條經驗 獲得超3個贊
有一個設置可以改變圖表中同系列數據標記的顏色。請參閱:改變圖表中同系列數據標記的顏色。false默認情況下最多為Excel 2007?,F在Microsoft決定將該設置設為true默認值。false因此,如果您不想要它,則需要明確設置。
在你的情況下:
...
XDDFLineChartData lineChartData = (XDDFLineChartData) chart.createData(ChartTypes.LINE, bottomAxis, rightAxis);
lineChartData.setVaryColors(false);
...
添加回答
舉報
0/150
提交
取消