如何在JFreeChart烛台图表中将主体和边框颜色设置为相同

时间:2014-01-14 00:03:06

标签: java jfreechart candlestick-chart

CandlestickRenderer类中有一些方法可以将所有蜡烛的边框颜色更改为所需的颜色,但我需要将所有Up蜡烛边框设置为绿色,将所有Down蜡烛边框设置为红色。非常感谢任何建议或示例代码。

1 个答案:

答案 0 :(得分:3)

我通过挖掘CandlestickRenderer类来源

得到了这个

首先,创建一个子类

public class MyCandlestickRenderer extends CandlestickRenderer {

    @Override
    public Paint getItemPaint(int row, int column) {

        //determine up or down candle 
        XYDataset dataset = getPlot().getDataset();
        OHLCDataset highLowData = (OHLCDataset) dataset;
        int series = row, item = column;
        Number yOpen = highLowData.getOpen(series, item);
        Number yClose = highLowData.getClose(series, item);
        boolean isUpCandle = yClose.doubleValue() > yOpen.doubleValue();

        //return the same color as that used to fill the candle
        if (isUpCandle) {
            return getUpPaint();
        }
        else {
            return getDownPaint();
        }
    }
}

然后设置图表以使用它

chart.getXYPlot().setRenderer(new MyCandlestickRenderer());

结果:

chart