java散点图_Java 创建 Excel 散点图

本文介绍了如何使用Free Spire.XLS for Java库在Excel中创建散点图,包括JAR包导入方法和详细步骤,展示了如何设置数据源、创建图表、添加标题、趋势线以及坐标轴名称。
摘要由CSDN通过智能技术生成

散点图是研究数据分布时常用的一种工具,通过观察散点图中坐标点的位置,可以帮助用户更加清晰直观的判断变量间是否存在关联关系。

本文将介绍如何使用Free Spire.XLS for Java

在Excel

中创建散点图。

JAR包导入:

方法1:下载

Free Spire.XLS for Java包并解压缩,然后将lib文件夹下的Spire.Xls.jar包作为依赖项导入到Java应用程序中。

方法2: 直接通过Maven仓库安装JAR包,配置pom.xml文件的代码如下

com.e-iceblue

http://repo.e-iceblue.cn/repository/maven-public/

e-iceblue

spire.xls.free

2.2.0

创建散点图:

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();

}

}

7cfee83ab95876181bd1eef7842e1df4.png

app.title = '气泡图'; var data = [ [['2015/1/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/1/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2016/5/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2017/6/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2018/9/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2019/2/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2019/5/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/1/6',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/24',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2017/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2018/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2019/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2019/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2019/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2018/6/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2018/6/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2019/6/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2018/6/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/14',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/16',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2018/6/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"']] ]; option = { backgroundColor: new echarts.graphic.RadialGradient(0.3, 0.3, 0.8, [{ offset: 0, color: '#f7f8fa' }, { offset: 1, color: '#cdd0d5' }]), title: { text: '2015年装备重大游戏1与/游戏2情况统计', subtext:'', x:'center', y:'top', textAlign:'center' }, legend: { orient: 'horizontal', // 'vertical' x: 'center', // 'center' | 'left' | {number}, y: 'bottom', // 'center' | 'bottom' | {number} //backgroundColor: '#fff', // borderColor: 'rgba(178,34,34,0.8)', // borderWidth: 4, padding: 5, // [5, 10, 15, 20] itemGap: 20, data: ['游戏1', '游戏2', '游戏3', '游戏2', '游戏3', '在游戏2范围内', '在游戏3范围内'] }, xAxis: { type: 'time', name:'时间', splitLine: { show: true, lineStyle:{ color: ['#315070'], width: 1, type: 'solid' }   } }, yAxis: { type: 'value', name:'类型', axisLabel:{ formatter : function(params){ return ""; } }, splitLine: { show: true, lineStyle:{ color: ['#4c5055'], width: 1, show:false, type: 'solid' }   } }, series: [{ //图形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow' name: '游戏1', data: data[0], type: 'scatter', symbol:"triangle", symbolSize:12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(80, 56, 50, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(76, 80, 85)' }, { offset: 1, color: 'rgb(85, 85, 72)' }]) } } }, { name: '游戏2', data: data[1], type: 'scatter', symbol:"rect", symbolSize: 12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(250, 196, 122, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(250, 139, 35)' }, { offset: 1, color: 'rgb(246, 144, 25)' }]) } } }, { name: '游戏3', data: data[2], type: 'scatter', symbol:"rect", symbolSize:12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(25, 100, 150, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(63, 167, 228)' }, { offset: 1, color: 'rgb(62, 157, 207)' }]) } } }, { name: '游戏2', data: data[3], type: 'scatter', symbol:"circle", symbolSize:12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(250, 196, 122, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(250, 139, 35)' }, { offset: 1, color: 'rgb(246, 144, 25)' }]) } } }, { name: '游戏3', data: data[4], type: 'scatter', symbol:"circle", symbolSize: 12, label: { emphasis: { show: true, formatter:15, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(25, 100, 150, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(63, 167, 228)' }, { offset: 1, color: 'rgb(62, 157, 207)' }]) } } }, { name: '在游戏2范围内', data: data[5], type: 'scatter', symbol:"diamond", symbolSize: 12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(250, 196, 122, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(250, 139, 35)' }, { offset: 1, color: 'rgb(246, 144, 25)' }]) } } }, { name: '在游戏3范围内', data: data[6], type: 'scatter', symbol:"diamond", symbolSize: 12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(25, 100, 150, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(63, 167, 228)' }, { offset: 1, color: 'rgb(62, 157, 207)' }]) } } } ] };
poi-tl是一个基于Apache POI库的Java工具包,主要用于处理Microsoft Office(如Excel)文件。它提供了一个简单的方式来读取、操作和生成Excel内容,包括创建图表。如果你想要使用poi-tl生成散点图(Scatter Plot),你可以按照以下步骤操作: 1. 首先,你需要在你的项目中添加poi-tl的依赖到Maven或Gradle构建文件中。 2. 创建一个新的`HSSFWorkbook`或`XSSFWorkbook`对象,这是POI用于表示工作簿的基础。 3. 调用`createDrawingPatriarch()`方法获取绘图区域,然后创建一个`CreationHelper`对象来帮助创建图表。 4. 使用`DataFormatter`将数据转换为合适的文本形式,因为scatter plot通常需要两个系列的数据对。 5. 创建一个`XSSFChart`对象,并指定图表类型为`XSSFChart.ChartType.SCATTER`. 6. 添加系列数据到图表,通过`addSeries()`方法传入数据列表。 7. 最后,你可以设置图表标题、标签等样式信息,并将其插入到工作表中。 示例代码片段(简化版): ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.charts.*; public void createScatterPlot() { Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Charts"); CreationHelper helper = workbook.getCreationHelper(); DataFormatter formatter = new DataFormatter(); // ... (填充数据和绘制坐标) Chart chart = ((XSSFSheet) sheet).createChartAt(0, 0); CategoryAxis xAxis = chart.createCategoryAxis(AxisPosition.BOTTOM); NumberAxis yAxis = chart.createNumberAxis(AxisPosition.LEFT); SeriesCollection seriesColl = chart.getSeriesCollection(); XYDataSource xyDataSource = helper.createRichTextStringArray( formatter.formatCellValue(sheet, cellA), formatter.formatCellValue(sheet, cellB)); ScatterChartData data = new ScatterChartData(xyDataSource, null); XYSeries scatterSeries = data.addSeries(null, null); scatterSeries.setTitle("Scatter Plot"); chart.setDataSource(data); xAxis.setTitle("X Axis Title"); yAxis.setTitle("Y Axis Title"); // Save and close the workbook // ... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值