java获取同一颜色区域的图片,java – JFreeChart在同一dataSeries的不同区域中的不同颜色...

看起来行之间着色的处理是在drawFirstPassShape中实现的

线条颜色似乎基于前一点

对XYLineAndShapeRenderer的此修改使用渐变填充来混合线条颜色.

XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(){

@Override

public Paint getItemPaint(int row, int col) {

Paint cpaint = getItemColor(row, col);

if (cpaint == null) {

cpaint = super.getItemPaint(row, col);

}

return cpaint;

}

public Color getItemColor(int row, int col) {

System.out.println(col + "," + dataset.getY(row, col));

double y = dataset.getYValue(row, col);

if(y<=3) return Color.black;

if(y<=4) return Color.green;;

if(y<=5) return Color.red;;

if(y<=6) return Color.yellow;;

if(y<=10) return Color.orange;;

return null;

}

@Override

protected void drawFirstPassShape(Graphics2D g2, int pass, int series,

int item, Shape shape) {

g2.setStroke(getItemStroke(series, item));

Color c1 = getItemColor(series, item);

Color c2 = getItemColor(series, item - 1);

GradientPaint linePaint = new GradientPaint(0, 0, c1, 0, 300, c2);

g2.setPaint(linePaint);

g2.draw(shape);

}

};

我删除了ColorUtil.hex2Rgb,因为我无法访问该类/方法.您可能需要修改GradientPaint以考虑点之间的距离/渐变.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值