TimeTableXYDataset を作成して渡し、StackedBarChart を表示します。これは、デモ パッケージの StackedXYBarChartDemo2 とよく似ています。ItemLabels として表示される値に加えて、すべてのバーの上にすべての値の合計を表示したいと思います。これが実行可能かどうか、そしてどのように知っていますか?
質問する
1061 次
1 に答える
3
XYItemLabelGenerator
2 つのシリーズを合計するカスタムを定義できます。
例えば :
DateAxis domainAxis = new DateAxis("Date");
domainAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
NumberAxis rangeAxis = new NumberAxis("Y");
// Set a margin so that the label above the bar has a place to display
rangeAxis.setUpperMargin(0.15);
StackedXYBarRenderer renderer = new StackedXYBarRenderer(0.10);
renderer.setDrawBarOutline(false);
XYPlot plot = new XYPlot(dataset, domainAxis, rangeAxis, renderer);
// Custom LabelGenerator, which displays the sum of the two series.
XYItemLabelGenerator generator = new XYItemLabelGenerator() {
@Override
public String generateLabel(XYDataset dataset, int series, int item) {
// Sum values for the two series of data
double sum = dataset.getYValue(0, item) + dataset.getYValue(1, item);
return "" + sum;
}
};
// The LabelGenerator is linked to series 1 (top part of the bar)
renderer.setSeriesItemLabelGenerator(1, generator);
renderer.setSeriesItemLabelsVisible(1, true);
renderer.setSeriesPositiveItemLabelPosition(1, new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,
TextAnchor.BASELINE_CENTER));
renderer.setItemLabelAnchorOffset(10);
JFreeChart chart = new JFreeChart("Stacked XY Bar Chart Demo 2", plot);
return chart;
于 2013-01-26T10:26:04.507 に答える