JFreeChart柱状图中单组柱子根据不同数据显示不同颜色的方法

JFreeChart柱状图中单组柱子根据不同数据显示不同颜色的方法:首先需要自定义一个Renderer,然后继承BarRenderer类,最后再重写getItemPaint(int i,int j)方法
我这里需求为分数大于89的显示绿色,大于79的显示橙色,其他的显示红色
第一步创建Renderer类并继承BarRenderer类,重写getItemPaint(int i,int j)方法

import lombok.Data;

import java.awt.*;
import java.util.ArrayList;

/**
 * 类描述: 重写BarRenderer类
 *
 * @author Jack_Liberty
 * @version 1.0
 * @date 2021-04-01 11:30
 */
@Data
public class CustomRenderer extends org.jfree.chart.renderer.category.BarRenderer {
   

    /**
     * 分值
     */
    private static final Double EIGHTY_NINE = 89D;

    /**
     * 分值
     */
    private static final Double SEVENTY_NINE = 79D;

    /**
     * 柱子颜色
     */
    private Paint[] colors;

    /**
     * 柱子分数
     */
    private ArrayList<Double> scores;

    public CustomRenderer() {
   
        /**
         * 初始化柱子颜色
         */
        String[] colorValues = {
   "#9BBE62", "#F59A23", "#E84614"};
        colors = new Paint[colorValues.length];
        for (int i = 0; i < colorValues.length; i++) {
   
            colors[i] = Color.decode(colorValues[i]);
        }
    }

    @Override
    public Paint getItemPaint(int i, int j) {
   
        Double score = this.scores.get(j);
        if (score > EIGHTY_NINE) {
   
            return colors[0];
        } else if (score > SEVENTY_NINE) {
   
            return colors[1];
        } else {
   
            return colors[2];
        }
    }
}

第二步、创建一个CategoryDataset对象

/**
     * 功能描述: 创建CategoryDataset对象
     *
     * @return org.jfree.data.category.CategoryDataset
     * @author Jack_Liberty
     * @date 2021-04-01 16:20
     */
    public static CategoryDataset createDataset() {
   
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值