2011-08-29 209 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()更改相应项目的颜色。