Во-первых, ваш ошибочный код кажется несовпадением версий между вашими примерами и используемой вами библиотекой. Метод setLabelGenerator
был удален и заменен на setBaseItemLabelGenerator
:
CategoryPlot plot = yourPlot;
CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer();
CategoryItemLabelGenerator generator = new StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("0.00"));
renderer.setBaseItemLabelGenerator(generator);
renderer.setBaseItemLabelsVisible(true);
XYItemRenderer renderer2 = (XYItemRenderer) plot.getRenderer();
XYItemLabelGenerator generator2 = new StandardXYItemLabelGenerator("{2}",
new DecimalFormat("0.00"),
new DecimalFormat("0.00"));
renderer.setBaseItemLabelGenerator(generator);
Вы можете видеть в моем примере, что StandardXYItemLabelGenerator
принимает два формата, один для значений x и один для y.
Что касается использования HorizontalCategoryAxis
, то постигла та же участь, что и setLabelGenerator
. Предполагая, что вам нужен вертикальный график с CategoryAxis
, который имеет метки вертикальные, а не горизонтальные, вы можете использовать setLabelAngle
для достижения желаемого эффекта:
public void customize(JFreeChart jfc, JRChart jrc) {
CategoryPlot myPlot = jfc.getCategoryPlot();
CategoryAxis axis = myPlot.getDomainAxis();
axis.setLabelAngle(-Math.PI / 2);
}