2011-08-29 238 views
1

我有這個代碼到目前爲止。現在我想覆蓋繪製點的位置。如果該點低於1,我想在1處繪製點並放置一個橙色標記。我設置了顏色,但現在我想改變Y的位置。我看到的唯一方法是可以覆蓋的是drawItem。但我不是100%肯定的。覆蓋jfreechart繪製一個點,而不覆蓋drawItem

public class XYCustomRenderer extends XYShapeRenderer { 

    @Override 
    public Paint getItemPaint(int series, int item) { 

     TimeSeriesCollection seriesCollection = (TimeSeriesCollection) getPlot().getDataset(); 
     //Logger.info("" + data.getY(0, 2)); 

     if (seriesCollection.getYValue(series, item) < 1) { 
      return Color.ORANGE; 
     } 

     return Color.RED; 
    } 
} 
+1

看來你應該看看你如何添加你的數據。圖表的其餘部分如何配置? – Jes

+0

是的,我可以改變數據的添加方式,但我更喜歡這種方法。 –

回答

1

你可以看看如何BoxAndWhiskerRenderer,看到here,使用Outlier。或者,將負的縱座標固定爲某個任意值,例如0,在您的數據模型中,並使用自定義getItemPaint()更改相應項目的顏色。