Переопределить, где jfreechart рисует точку без переопределения drawItem - PullRequest
1 голос
/ 29 августа 2011

У меня пока есть этот код. Прямо сейчас я хочу переопределить, где нарисована точка. Если точка ниже 1, я хочу нарисовать точку на 1 и разместить оранжевый маркер. У меня настроен цвет, но теперь я хочу изменить позицию Y. Единственный способ, который я могу переопределить, это drawItem. Но я не уверен на 100%.

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 Ответ

1 голос
/ 29 августа 2011

Вы можете посмотреть, как BoxAndWhiskerRenderer, видимый здесь , использует Outlier.В качестве альтернативы, вы можете прикрепить отрицательные ординаты к какому-либо произвольному значению, например, 0, в своей модели данных и использовать свой пользовательский getItemPaint(), чтобы изменить цвет соответствующего элемента.

...