我正在使用jfree图表以图形方式显示指标。值,实际上我不需要任何与它们关联的厚度。有没有一种方法可以有选择地指定点的厚度。我目前正在使用XYLineAndShapeRenderer渲染点的厚度。
最佳答案
您可以覆盖getItemShapeVisible()
并安排它返回false
的虚假点。您可以使用XYZDataset
的实现将决策所需的额外信息存储在数据模型中。
或者,在呈现数据之前考虑smoothing数据。这种过滤器通常会减少点数,从而简化了渲染。
无论哪种情况,请避免混淆或误导数据更改。显示为TextTitle
的here可以阐明结果。
附录:getItemShapeVisible()
告诉您正在考虑什么series
和item
。默认实现只是询问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);