我正在使用jfree图表以图形方式显示指标。值,实际上我不需要任何与它们关联的厚度。有没有一种方法可以有选择地指定点的厚度。我目前正在使用XYLineAndShapeRenderer渲染点的厚度。

最佳答案

您可以覆盖getItemShapeVisible()并安排它返回false的虚假点。您可以使用XYZDataset的实现将决策所需的额外信息存储在数据模型中。

或者,在呈现数据之前考虑smoothing数据。这种过滤器通常会减少点数,从而简化了渲染。

无论哪种情况,请避免混淆或误导数据更改。显示为TextTitlehere可以阐明结果。

附录:getItemShapeVisible()告诉您正在考虑什么seriesitem。默认实现只是询问getSeriesShapesVisible()。这是一个大纲:

private static class MyRenderer extends XYLineAndShapeRenderer {

    @Override
    public boolean getItemShapeVisible(int series, int item) {
        System.out.println(series + ":" + item);
        if (item % 2 == 0) return false;
        else return super.getItemShapeVisible(series, item);
    }
}


附录:以下是安装方法:

XYPlot plot = chart.getXYPlot();
MyRenderer renderer = new MyRenderer();
plot.setRenderer(renderer);

10-07 16:53