JasperReports:如何在图表轴上屏蔽或过滤标签

时间:2012-02-17 09:31:47

标签: jasper-reports ireport jfreechart

我使用的是基于简单数据集的简单区域图:

DateTime(sql.timestamp) |Value(Integer)
2012-02-17 00:02:02     |100
2012-02-17 00:02:08     |110
2012-02-17 00:02:20     |90
2012-02-17 00:02:35     |10
2012-02-17 00:02:40     |130
2012-02-17 00:04:22     |14
2012-02-17 00:04:33     |45
2012-02-17 00:05:02     |60
...

DateTime由Category Axis使用,Value由Range Axis使用 在数据集中有~1000记录
在类别的标签中,Axis将显示每个DateTime值 但是有1000个记录太多,类别标签将显示为黑线 那是我的问题 我试图(联合国)检查所有“图表属性”。没有结果。
我必须掩盖或过滤标签吗? 我试图改变以下的值:
类别刻度标签面具
类别轴垂直刻度标签
(此复选框无效)

类别轴的标签表达

所有在几个方面。 但它不起作用。 每个数据集都将创建一个自己的标签。

我使用的其他报告引擎计算了Cat。轴动态。
但JasperReports?

我正在使用iReport 4.5.0和(实际)jfreechart 1.0.14

修改

如果我使用时间序列图表,JasperReports将按Intervall(年,月,...)对数据进行分组,而不是动态

但是图表的外观相当不错,所以这就是我想要的。 只有标签必须彼此远离。

这里有一个很好的例子(advsoft phpChartdirector) that is OK

这里是JasperReports / IReport示例:

不行。看看猫。轴

not OK. Take a look to the cat. Axis

那么......怎么办?

结束编辑

亲切的问候 基督教

1 个答案:

答案 0 :(得分:2)

使用时间序列图表而不是折线图。你应该得到你正在寻找的那种方式。

编辑:我使用您提供的.jrxml和数据进行了测试。效果很好: Nice Time Series Chart

但是...... iReport中似乎有一个错误。您无法在iReport GUI中设置时间段。也许这就是导致你出现问题的原因。这对我来说非常困惑。无论您尝试选择什么时间段,iReport都会生成此信息:

<timeSeriesDataset>

但您需要手动将JRXML更改为:

<timeSeriesDataset timePeriod="Second">

一旦你这样做,那么你会得到一个漂亮的图表。至少iReport不会删除正确的timePeriod信息...因此您只需要执行一次。

注意:如果您担心要在2行显示日期信息等细节,也可以这样做。我讨厌被困在一条线上。去年我写了一篇关于这篇文章的文章。查找Category Labels on multiple lines部分。