【发布时间】:2017-11-15 20:00:33
【问题描述】:
我正在使用折线图组件根据建筑物的消耗量生成图表。 想象一个可能的图表,该图表基于一个月内建筑物的消耗量和一天的分辨率。 30天对应30点消费。 问题在于类别轴标签。有了相当多的点,标签变得不可读。我怎样才能标记一些点?
致以最诚挚的问候
【问题讨论】:
我正在使用折线图组件根据建筑物的消耗量生成图表。 想象一个可能的图表,该图表基于一个月内建筑物的消耗量和一天的分辨率。 30天对应30点消费。 问题在于类别轴标签。有了相当多的点,标签变得不可读。我怎样才能标记一些点?
致以最诚挚的问候
【问题讨论】:
不要使用“折线”图表。而是使用“时间序列”图表。
它会自动处理有关绘制所有点的问题,但只标记可读数量的点。它还可以处理由非均匀间隔的数据点产生的问题。
编辑:如果您的传入数据是字符串而不是日期,那么您有额外的工作。时间序列图表需要时间(嗯,日期)。您需要将 DateString 转换为真实的 Date。但工作量小,收益大。使用这样的变量:new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse($F{MyDateString})。
【讨论】:
使用此代码在 JASPER 报告中的折线图上生成标签
else if(jasperChart.getChartType() == JRChart.CHART_TYPE_LINE) {
LineAndShapeRenderer line = (LineAndShapeRenderer) chart.getCategoryPlot().getRenderer();
line.setBaseItemLabelsVisible(Boolean.TRUE);
line.setBaseItemLabelGenerator((CategoryItemLabelGenerator) new StandardCategoryItemLabelGenerator());
}
【讨论】: