2011-12-26 24 views
1

我正在使用jfree圖表來圖形化地顯示metrics.Now我正在研究一個解決方案,它隨機化XY線圖中的圖表元素,使圖看起來更平滑。問題是我不想隨機元素以獲得與實際值相同的厚度,實際上我不會想要與它們相關的任何厚度。是否有選擇性指定點厚度的方法。我目前使用XYLineAndShapeRenderer來渲染點厚度。JFree圖選擇性點厚度

回答

4

您可以覆蓋getItemShapeVisible()並安排它爲虛假點返回false。您可以使用XYZDataset的實施方式將決策所需的額外信息存儲在數據模型中。

作爲替代方案,請在呈現它之前考慮smoothing數據。這樣的過濾器通常導致更少的點,這簡化了渲染。

無論在哪種情況下,都應避免對數據造成混淆或誤導性更改。 A TextTitle,顯示爲here,可以澄清結果。

附錄: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); 
+0

感謝您的答覆,將嘗試它。但是是一個數據系列API的指標具體,或只是該指數。我應該如何實施。 – Madusudanan 2011-12-26 14:26:52

+0

我已經詳細闡述過了。 – trashgod 2011-12-26 16:20:08

+0

我已經更新了示例以跳過所有其他'Shape',不管系列如何。 – trashgod 2011-12-27 10:57:03