0

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

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

  1. 一个文本字段转储$V{REPORT_COUNT}(它在 iReport 的报告预览中报告 18512)
  2. 显示所有数据点的时间序列 [日期,响应时间]
  3. 包含单个系列中所有数据点的类别图 [category= $F{DATE}, value= $F{RESPONSE_TIME}]

我决定构建直方图最直接的方法是使用类别图,因为它具有适合最终直方图的正确结构。

运行时ChartCustomizer,它会输出有关数据集的各种有用信息,包括大小。奇怪的是,大小是 10252:它缺少 8000 个数据点。我不明白为什么类别图的数据点少于整个数据集。

有任何想法吗?

4

1 回答 1

0

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

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

一开始这对我来说应该是完全显而易见的,因为这正是类别数据集的工作方式。

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

于 2013-09-04T13:09:48.293 回答