2011-12-22 45 views
2

我使用线图组件生成基于建筑物消耗的图表。 想象一下根据建筑物在一个月内的消耗量和一天中的分辨率得出的可能图表。它将有30个消费点相应的30天。 问题在于类别轴标签。有相当多的点数,标签变得不可读。我怎样才能标出一些要点?iReport折线图类别标签

我最好的问候

回答

2

请勿使用“直线”图表。而是使用“时间序列”图表。

它会自动处理图表中所有点的问题,但只能标记可读数。它还处理由不均匀间隔的数据点产生的问题。

编辑:如果您的传入数据是字符串而不是日期,那么你有额外的工作。时间序列图预计时间(好,日期)。你需要将你的DateString转换为真实的日期。但是这项工作很小,而且效益很大。使用像这样的变量:new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse($F{MyDateString})

+0

感谢您的答复。问题是“时间序列”图表需要java.util.Date作为时间段表达式,并且我使用了xml数据源,其中每个数据都被识别为字符串。当它试图将字符串解析为日期时,它会抛出相应的异常。 – nunopato

+0

是的,这增加了一块。但它不应该太难以克服。你只需要施放你的弦乐。我会用一个例子来编辑我的答案。 – mdahlman

0

使用此代码来生成在JASPER线图上的标签报告

else if(jasperChart.getChartType() == JRChart.CHART_TYPE_LINE) { 
    LineAndShapeRenderer line = (LineAndShapeRenderer) chart.getCategoryPlot().getRenderer(); 
    line.setBaseItemLabelsVisible(Boolean.TRUE); 
    line.setBaseItemLabelGenerator((CategoryItemLabelGenerator) new StandardCategoryItemLabelGenerator()); 
}