散點圖是指在迴歸分析中,數據點在直角座標系平面上的分佈圖,表示因變量隨自變量而變化的大體趨勢,經常使用於比較跨類別的聚合數據。在excel中,支持建立散點圖來實現數據分析,本文將經過java程序代碼示例來介紹具體實現方法。html
工具:Free Spire.XLS for Java (免費版)java
注:可經過官網下載,解壓並將lib文件夾下的jar文件導入java程序。也可經過maven倉庫下載導入。maven
導入效果以下:工具
這裏可支持的圖標類型多達70多種,如柱形圖、餅狀圖、折線圖、散點圖、混合圖、雷達圖、氣泡圖等等(以下圖)。spa
本文以建立散點圖爲例。3d
Java 代碼示例excel
import com.spire.xls.*; import com.spire.xls.core.IChartTrendLine; public class ScatterChart { public static void main(String[] args) { //實例化Workbook類的對象,並獲取第一個工做表 Workbook workbook = new Workbook(); Worksheet sheet = workbook.getWorksheets().get(0); //設置列寬,工做表名 sheet.getCellRange("A1:B1").setColumnWidth(15f);; sheet.setName("散點圖"); //添加圖表數據源 sheet.getCellRange("A1").setValue("城市化水平"); sheet.getCellRange("A2").setValue("10"); sheet.getCellRange("A3").setValue("15"); sheet.getCellRange("A4").setValue("17"); sheet.getCellRange("A5").setValue("25"); sheet.getCellRange("A6").setValue("35"); sheet.getCellRange("A7").setValue("40"); sheet.getCellRange("A8").setValue("38"); sheet.getCellRange("A10").setValue ("17"); sheet.getCellRange("A9").setValue ("24"); sheet.getCellRange("B1").setValue("耕地面積"); sheet.getCellRange("B2").setValue ("26780"); sheet.getCellRange("B3").setValue("24086"); sheet.getCellRange("B4").setValue ("20546"); sheet.getCellRange("B5").setValue ("15057"); sheet.getCellRange("B6").setValue ("11036"); sheet.getCellRange("B7").setValue ("12546"); sheet.getCellRange("B8").setValue("9854"); sheet.getCellRange("B9").setValue ("13506"); sheet.getCellRange("B10").setValue ("18756"); //建立散點圖 Chart chart = sheet.getCharts().add(ExcelChartType.ScatterMarkers); chart.setDataRange(sheet.getCellRange("B2:B10")); chart.setSeriesDataFromRange(false); //指定散點圖在sheet中的位置 chart.setLeftColumn(4); chart.setTopRow(1); chart.setRightColumn(15); chart.setBottomRow(25); //添加圖表標題、系列標籤 chart.setChartTitle("城市化與耕地面積變化散點圖"); chart.getChartTitleArea().isBold(true);; chart.getChartTitleArea().setSize(12); chart.getSeries().get(0).setCategoryLabels(sheet.getCellRange("B2:B10")); chart.getSeries().get(0).setValues(sheet.getCellRange("A2:A10")); sheet.getCellRange("A1:B10").getStyle().setHorizontalAlignment(HorizontalAlignType.Center); sheet.getCellRange("A1:B1").getStyle().getFont().isBold(true); //添加趨勢線 IChartTrendLine trendLine = chart.getSeries().get(0).getTrendLines().add(TrendLineType.Exponential); trendLine.setName("趨勢線"); //添加座標軸名稱 chart.getPrimaryValueAxis().setTitle("城市化水平(%)"); chart.getPrimaryCategoryAxis().setTitle("耕地面積(萬hm^2)"); //保存文檔 workbook.saveToFile("ScatterChart.xlsx",ExcelVersion.Version2010); workbook.dispose(); } }
散點圖建立效果:code