How to add different color for a same series in a chart

HOW TO ADD DIFFERENT COLOR BASED ON THE Y VALUE FOR A SAME SERIES IN A CHART WIDGET [CHART TYPE : COLOUMN]

ESP32 WROOVER IE

LVGL v7.11.0

I WANT OUTPUT IN WHICH I WILL GET A COLOR CHANGE BASED ON Y VALUE OF CHART FOR A SAME SERIES

I AM ABLE TO ACHIVE DIFFERENT COLORS FOR DIFFERENTSERIES BUT IF I AM ADDING SERIES MY COLOUM WIDTH IS DECREASING

Code to reproduce

Add a code snippet which can run in the simulator. It should contain only the relevant code that compiles without errors when separated from your main code base.

The code block(s) should be formatted like:

void lv_chart(void)
{
    /*Create a chart*/
    lv_point_t point = {10, 20};
    lv_obj_t * scr1 = lv_obj_create(NULL, NULL);
    chart = lv_chart_create(scr1, NULL);
    lv_obj_set_size(chart, 200, 150);
    lv_obj_align(chart, NULL, LV_ALIGN_CENTER, 15, 0);
    lv_chart_set_type(chart, LV_CHART_TYPE_COLUMN );   /*Show lines and points too*/

    /*Add a faded are effect*/
    lv_obj_set_style_local_bg_opa(chart, LV_CHART_PART_SERIES, LV_STATE_DEFAULT, LV_OPA_50); /*Max. opa.*/
    lv_obj_set_style_local_bg_grad_dir(chart, LV_CHART_PART_SERIES, LV_STATE_DEFAULT, LV_GRAD_DIR_VER);
    lv_obj_set_style_local_bg_main_stop(chart, LV_CHART_PART_SERIES, LV_STATE_DEFAULT, 255);    /*Max opa on the top*/
    lv_obj_set_style_local_bg_grad_stop(chart, LV_CHART_PART_SERIES, LV_STATE_DEFAULT, 0);      /*Transparent on the bottom*/

    /*Add two data series*/
    ser1 = lv_chart_add_series(chart, lv_color_hex(0x25cc1a));
    ser2 = lv_chart_add_series(chart, lv_color_hex(0xffd963));
    ser3 = lv_chart_add_series(chart, lv_color_hex(0xff6262));

    lv_chart_cursor_t * c1 = lv_chart_add_cursor(chart, lv_color_hex(0xffd963), LV_CHART_CURSOR_LEFT);
    lv_chart_set_cursor_point(chart, c1, &point);
  //   lv_chart_set_range(chart, 0, 800);
  lv_chart_set_div_line_count(chart, 0, 0);
  lv_chart_set_x_tick_length(chart,100,10);
   
lv_chart_set_next(chart, ser1, I);
    lv_scr_load(scr1);
    
}