JasperReports CategoryDataset的数据少于预期?

时间:2013-09-04 13:06:05

标签: graph jasper-reports ireport

我正在尝试开发一个ChartCustomizer,它从图表中获取数据并将其转换为直方图(因为JR不直接支持直方图)。这是一个相当简单的实现,具有硬编码区间等,此时主要是作为概念验证。

我分析的数据是[日期,响应时间]形式的HTTP响应时间数据,我有一个包含18512条记录的CSV文件。在我的摘要乐队中,我有3个项目:

  1. 转储$V{REPORT_COUNT}的文本字段(在iReport的报告预览中报告18512)
  2. 显示所有数据点[日期,响应时间]
  3. 的时间序列
  4. 包含单个系列中所有数据点的类别图[category = $F{DATE},value = $F{RESPONSE_TIME}]
  5. 我认为构建直方图最直接的方法是使用类别图,因为它具有最终直方图的正确结构。

    ChartCustomizer运行时,它会转储有关数据集的各种好信息,包括大小。奇怪的是,大小是10252:它缺少像8000个数据点那样的东西。我无法理解为什么类别图的数据点数比整个数据集少。

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,以防其他人遇到这个愚蠢的用户错误。

问题是CategoryDataset每个“类别”只允许一个数据点,而在我的情况下,“类别”是从Web服务器日志中捕获的java.util.Date。显然,我的日期中有近一半是重复的,因此部分数据集覆盖了另一半,留下了一部分数据。

这对我来说应该是非常明显的,因为这正是类别数据集的工作方式。

无论如何,只需将类别情节系列的“类别表达”从$F{DATE}更改为$V{REPORT_COUNT},就会为每个数据提供一个独特的类别,使一切正常。