我正在尝试开发一个ChartCustomizer,它从图表中获取数据并将其转换为直方图(因为JR不直接支持直方图)。这是一个相当简单的实现,具有硬编码区间等,此时主要是作为概念验证。
我分析的数据是[日期,响应时间]形式的HTTP响应时间数据,我有一个包含18512条记录的CSV文件。在我的摘要乐队中,我有3个项目:
$V{REPORT_COUNT}
的文本字段(在iReport的报告预览中报告18512)$F{DATE}
,value = $F{RESPONSE_TIME}
] 我认为构建直方图最直接的方法是使用类别图,因为它具有最终直方图的正确结构。
当ChartCustomizer
运行时,它会转储有关数据集的各种好信息,包括大小。奇怪的是,大小是10252:它缺少像8000个数据点那样的东西。我无法理解为什么类别图的数据点数比整个数据集少。
有什么想法吗?
答案 0 :(得分:0)
回答我自己的问题,以防其他人遇到这个愚蠢的用户错误。
问题是CategoryDataset
每个“类别”只允许一个数据点,而在我的情况下,“类别”是从Web服务器日志中捕获的java.util.Date
。显然,我的日期中有近一半是重复的,因此部分数据集覆盖了另一半,留下了一部分数据。
这对我来说应该是非常明显的,因为这正是类别数据集的工作方式。
无论如何,只需将类别情节系列的“类别表达”从$F{DATE}
更改为$V{REPORT_COUNT}
,就会为每个数据提供一个独特的类别,使一切正常。