我使用線圖組件生成基於建築物消耗的圖表。 想象一下根據建築物在一個月內的消耗量和一天中的分辨率得出的可能圖表。它將有30個消費點相應的30天。 問題在於類別軸標籤。有相當多的點數,標籤變得不可讀。我怎樣才能標出一些要點?iReport折線圖類別標籤
我最好的問候
我使用線圖組件生成基於建築物消耗的圖表。 想象一下根據建築物在一個月內的消耗量和一天中的分辨率得出的可能圖表。它將有30個消費點相應的30天。 問題在於類別軸標籤。有相當多的點數,標籤變得不可讀。我怎樣才能標出一些要點?iReport折線圖類別標籤
我最好的問候
請勿使用「直線」圖表。而是使用「時間序列」圖表。
它會自動處理圖表中所有點的問題,但只能標記可讀數。它還處理由不均勻間隔的數據點產生的問題。
編輯:如果您的傳入數據是字符串而不是日期,那麼你有額外的工作。時間序列圖預計時間(好,日期)。你需要將你的DateString轉換爲真實的日期。但是這項工作很小,而且效益很大。使用像這樣的變量: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());
}
感謝您的答覆。問題是「時間序列」圖表需要java.util.Date作爲時間段表達式,並且我使用了xml數據源,其中每個數據都被識別爲字符串。當它試圖將字符串解析爲日期時,它會拋出相應的異常。 – nunopato
是的,這增加了一塊。但它不應該太難以克服。你只需要施放你的絃樂。我會用一個例子來編輯我的答案。 – mdahlman