【问题标题】:JFreeChart: XYAreaRenderer2 with StandardXYItemLabelGeneratorJFreeChart:带有 StandardXYItemLabelGenerator 的 XYAreaRenderer2
【发布时间】:2012-07-13 20:11:13
【问题描述】:

我正在尝试将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);

【问题讨论】:

    标签: java charts jfreechart


    【解决方案1】:

    与XYLineAndShapeRenderer 不同,XYAreaRenderer 和XYAreaRenderer2 都不会调用抽象父级的drawItemLabel()。实际上,标签不受支持,但工具提示支持,如下所示。

    XYAreaRenderer2 renderer = new XYAreaRenderer2(
        new StandardXYToolTipGenerator("test: {0} {1} {2}",
        NumberFormat.getNumberInstance(),
        NumberFormat.getNumberInstance()), null);
    plot.setRenderer(renderer);
    

    【讨论】:

    • 谢谢。我可以自己调用该方法或执行其他任何操作以使其显示,即使以 hack-ish 方式?
    • 我从未尝试过;猜测一下,标签可能与图表对AlphaComposite 的使用冲突。
    猜你喜欢
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多