我正在使用 jfree chart 以图形方式显示指标。现在我正在研究一种解决方案,它随机化 XY 折线图中的图形元素,使图形看起来更平滑。问题是我不希望随机元素获得相同的厚度作为实际值,事实上我不希望任何厚度与它们相关联。有没有一种方法可以选择性地指定点厚度。我目前正在使用 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);
关于java - JFree图表选择点粗细,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8635163/