本文介绍通过使用spire.xls for 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();
}
}
散点图创建效果: