当前使用POI生成散点图,但是该图表很奇怪:

左上角的一个是使用我的代码生成的,另一个是在Excel中手动生成的.

它们都是“带有直线和标记的散点图”类型,但是由于某种原因,生成的图表显示了曲线.另一个问题是,每个数据点在图例中分别列出,并指定了另一种颜色.

public void GenerateChart(XSSFSheet sheet) {

XSSFDrawing drawing = sheet.createDrawingPatriarch();

XSSFClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 5, 10, 15);

XSSFChart chart = drawing.createChart(anchor);

XSSFChartLegend legend = chart.getOrCreateLegend();

legend.setPosition(LegendPosition.TOP_RIGHT);

XSSFValueAxis bottomAxis = chart.createValueAxis(AxisPosition.BOTTOM);

XSSFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT);

leftAxis.setCrosses(AxisCrosses.AUTO_ZERO);

CellRangeAddress crXData = new CellRangeAddress(1, sheet.getLastRowNum(), 0, 0);

CellRangeAddress crYData = new CellRangeAddress(1, sheet.getLastRowNum(), 1, 1);

CellReference crTitle = new CellReference(0,1);

Cell cell = sheet.getRow(crTitle.getRow()).getCell(crTitle.getCol());

ChartDataSource dsXData = DataSources.fromNumericCellRange(sheet, crXData);

ChartDataSource dsYData = DataSources.fromNumericCellRange(sheet, crYData);

XSSFScatterChartData data = chart.getChartDataFactory().createScatterChartData();

ScatterChartSeries seriesTitler = data.addSerie(dsXData, dsYData);

seriesTitler.setTitle(cell.getStringCellValue());

chart.plot(data, bottomAxis, leftAxis);

}

使用Apache POI 3.17

文档here显示XSSFScatterChartData和其他对象已被弃用,我应该改用XDDFScatterChartData.但是我不知道在哪里可以获取.jar来使用它.我以为它是Beta版?

我想要做的是生成图像右侧的图表(手动创建的图表).由于POI允许创建图表似乎是一个相对较新的东西,因此我一直找不到任何线索.有人知道诀窍吗?

解决方法:

在较新的Excel版本中,问题已更改为Excel图表的默认值.

有一个设置可以使散点图中的线条平滑. Apache poi对此没有设置.但是现在在较新的Excelversions中,如果未设置此选项,则默认为true.

还有一个用于更改每个数据点颜色的设置.另外apache poi没有设置这个.但是现在在较新的Excelversions中,如果未设置,则此选项默认为true.

因此,我们需要根据需要将这两个选项都设置为false:

...

chart.plot(data, bottomAxis, leftAxis);

//set properties of first scatter chart data series to not smooth the line:

((XSSFChart)chart).getCTChart().getPlotArea().getScatterChartArray(0).getSerArray(0)

.addNewSmooth().setVal(false);

//set properties of first scatter chart to not vary the colors:

((XSSFChart)chart).getCTChart().getPlotArea().getScatterChartArray(0)

.addNewVaryColors().setVal(false);

...

不幸的是,https://poi.apache.org/apidocs/不是最新稳定版本的POI API文档,而是当前“ Nightly Build”的POI API文档.因此,对于使用XDDF而不是XSSF,需要使用夜间构建,而夜间构建当然不是稳定版本,应该在生产代码中使用.

标签:java,charts,excel,graph,apache-poi

来源: https://codeday.me/bug/20191012/1900568.html

java 散点图_java-Apache POI散点图创建相关推荐

  1. java自动生成项目编号_java - Apache POI,在同一文档中创建项目符号点和编号列表 - 堆栈内存溢出...

    我试图用apache poi创建一个既包含圆点又包含编号列表的文档. 我想得到这样的结果. 名单: 清单1项目0 清单1项目1 清单1项目2 列表后的段落. 清单2: 清单2项目0 清单2项目1 清单 ...

  2. java poi 段落行间距_java - Apache poi XWPF Paragraph行间距 - 堆栈内存溢出

    我正在尝试使用Java / Coldfusion中的Apache Poi构建一个word文档. 到目前为止,它让我做了很多我想要的格式,除了段落的行间距. 有谁知道如何将段落设置为单行间隔? 它不断构 ...

  3. Java下使用Apache POI生成具有三级联动下拉列表的Excel文档

    使用Apache POI生成具有三级联动下拉列表的Excel文档: 具体效果图与代码如下文. 先上效果图: 开始贴代码,代码中部分测试数据不影响功能. 第一部分(核心业务处理): 此部分包含几个方面: ...

  4. poi java表格标题高度_如何使用java中的apache poi降低word中表行的默认高度

    XWPFTableRow.setHeight(int height) https://poi.apache.org/apidocs/org/apache/poi/xwpf/usermodel/XWPF ...

  5. java itext word操作_使用JAVA中的Apache POI和iText从Word(DOC)创建PDF

    docx4j包含 code,用于使用iText从docx创建PDF.它还可以使用POI将doc转换为docx. 曾经有一段时间我们平等地支持这两种方法(以及通过XHTML的PDF),但我们决定专注于X ...

  6. android java函数_java – 在android中创建全局函数

    像这样创建类并在此处添加您的函数: package com.mytest; import android.content.Context; import android.net.Connectivit ...

  7. excel文件下载下来损坏 js_使用Java / javascript和apache POI导出.xls文件时获取损坏的文件...

    我正在尝试从Web应用程序下载浏览器中的.xls文件.下面是相同的代码. try(FileInputStream inputStream = new FileInputStream("C:\ ...

  8. java后台处理excel_java后台利用Apache poi 生成excel文档提供前台下载示例

    之前在项目中会用到在java在后台把数据填入Word文档的模板来提供前台下载,为了自己能随时查看当时的实现方案及方便他人学习我写了这篇博客,访问量已经是我写的博客里第一了.于是乎我在学会用Java在后 ...

  9. Apache POI和JXL(Java Excel)的基本使用——操作excel

    一.简介 开发中经常会涉及到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel Apache P ...

  10. java取linux本地xml,java-使用apache poi读取.xlsx文件会在Linux机器...

    我有一个读取.xlsx文件并向用户显示内容的应用程序.该应用程序在Windows环境下运行良好. 我将此Web应用程序的.war文件部署在ubuntu服务器上的tomcat6上.我还复制了服务器上的. ...

最新文章

  1. 计算机科学速成课】[40集全/精校] - Crash Course Computer Science
  2. 检查电脑是否被安装***的三个小命令
  3. PHPMySQL——防止SQL注入-代码片段
  4. C#不为人知的秘密-缓冲区溢出
  5. java两种异常_JAVA两种异常的区别 (转)
  6. eclipse jdk配置_第一节:学会Java前提-手把手教你配置JDK环境变量
  7. kafka中的数据发送保障
  8. C# App.config 详解
  9. C语言函数参数传递详解
  10. xp安全模式下如何修复计算机,xp安全模式下怎么解决蓝屏_xp开机进入安全模式修复蓝屏教程...
  11. 清除手机图案解锁(执行adb命令工具类)
  12. 用python做乘法口诀表_如何用python编写乘法口诀表
  13. linux spec cpu,SPEC CPU2006的安装和使用
  14. 为什么不是每个人都过着他梦想中的生活呢?
  15. 技术架构分析:攻克Dota2的OpenAI-Five
  16. Java官方教程(三-2)赋值 运算和一元运算符(2020.12.19)
  17. Druid监控页面配置reset-enable的说明
  18. [Ahoi2014Jsoi2014]骑士游戏(SPFA)
  19. java字符串是日期yyxx_Mysql 优化方案
  20. The Tree (AVL, 2-3-, 红黑,Huffman)

热门文章

  1. MediaProxy的Web监控界面及多Relay情景配置
  2. MySQL的几个character_set变量的说明
  3. C#、VB.NET 使用System.Media.SoundPlayer播放音乐
  4. C语言开发fastcgi初探(一)
  5. 关于 strftime 的使用
  6. IIS7 设置 UrlRewrite
  7. mssql2008极占内存
  8. 商用工程开发中的一些习惯
  9. js操作select相关方法(收集)
  10. FreeEIM 来点新知识iOS UIScrollView详解