我正在使用jfree图表以图形方式显示指标。现在我正在研究一种解决方案,它将XY线图中的图形元素随机化,以使图形看起来更平滑。问题是我不希望随机元素获得相同的厚度作为真正的值,实际上我不会有任何与它们相关的厚度。有没有办法有选择地指定点厚度。我目前正在使用XYLineAndShapeRenderer渲染点厚度。
答案 0 :(得分:4)
您可以覆盖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);