JFreeChart: XYAreaRenderer2 с StandardXYItemLabelGenerator

Я пытаюсь использовать StandardXYItemLabelGenerator с визуализатором XYAreaRenderer2, но ничего не появляется. Если использовать тот же код с XYLineAndShapeRenderer, я правильно вижу метки на графике. Как я могу увидеть эти метки на XYAreaChart?

 // create the chart...
        final JFreeChart chart = ChartFactory.createXYAreaChart(
                header_label, // chart title
                x_label, // x axis label
                y_label, // y axis lsabel
                dataset, // data
                PlotOrientation.VERTICAL,
                includeLegend, // include legend
                true, // tooltips
                false // urls
                );

        // NOW DO SOME OPTIONAL CUSTOMIZATION OF THE CHART...
        chart.setBackgroundPaint(Color.white);

        // get a reference to the plot for further customization...
        final XYPlot plot = chart.getXYPlot();
        plot.setBackgroundPaint(Color.lightGray);
        plot.setDomainGridlinePaint(Color.white); // X Axis is Domain
        plot.setRangeGridlinePaint(Color.white);  // Y Axis is Range

        // Allow lines and shapes to be visible
        renderer1 = new XYAreaRenderer();

        // Set the tooltip generator
        renderer1.setBaseToolTipGenerator(toolTipGenerator);

        NumberFormat.getNumberInstance().setMaximumFractionDigits(2);
//        renderer1.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator("{0} {1} {2}", NumberFormat.getNumberInstance(), NumberFormat.getNumberInstance()));
        renderer1.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator("test  {0} {1} {2}", NumberFormat.getNumberInstance(), NumberFormat.getNumberInstance()));

        renderer1.setBaseItemLabelsVisible(true);

        plot.setRenderer(renderer1);

person skaz    schedule 13.07.2012    source источник


Ответы (1)


В отличие от XYLineAndShapeRenderer, ни XYAreaRenderer, ни XYAreaRenderer2 не вызывают drawItemLabel() абстрактного родителя. По сути, метки не поддерживаются, а всплывающие подсказки поддерживаются, как предлагается ниже.

XYAreaRenderer2 renderer = new XYAreaRenderer2(
    new StandardXYToolTipGenerator("test: {0} {1} {2}",
    NumberFormat.getNumberInstance(),
    NumberFormat.getNumberInstance()), null);
plot.setRenderer(renderer);
person trashgod    schedule 13.07.2012
comment
Спасибо. Могу ли я сам вызвать этот метод или сделать что-нибудь еще, чтобы он отображался, даже хакерским способом? - person skaz; 14.07.2012
comment
я никогда не пробовал; возможно, метки могут конфликтовать с использованием диаграммы AlphaComposite. - person trashgod; 14.07.2012