'How to change the background color of the bars in a barchart using react-native-chart-kit

I am using react-native-chart-kit and I am trying to have a cbar chart with any color filling up the bars, as of now it is gray but I am trying to change it but i have tried adding color: {} within the datasets part, as well as svg. But to no success. Any suggestions will be greatly appreciated.

render() {
        return (
            <View>
                <BarChart
                    data={{
                        labels: [
                            '1',
                            '2',
                            '3',
                            '4',
                            '5',
                            '6',
                            '7'
                        ],
                        datasets: [
                            {
                                data: this.props.data,
                            },
                        ],
                    }}
                    svg={{ fill: 'green' }}
                    width={Dimensions.get('window').width - 16}
                    height={220}

                    chartConfig={{
                        backgroundColor: '#fff',
                        backgroundGradientFrom: '#fff',
                        backgroundGradientTo: '#fff',
                        decimalPlaces: 2,
                        color: (opacity = 1) => `rgba(0, 0, 0, ${opacity})`,
                        style: {
                            borderRadius: 16,
                        },
                        propsForDots: {
                            r: "0",
                            strokeWidth: "2",
                            stroke: "#fff"
                        },
                        propsForBackgroundLines: {
                            strokeWidth: 0
                        },
                    }}
                    style={{
                        marginVertical: 8,
                        borderRadius: 16,
                    }}
                />
            </View>
        );
    }


Solution 1:[1]

You can set fillShadowGradient and fillShadowGradientOpacity in your chartConfig.

More info here: https://github.com/indiespirit/react-native-chart-kit#chart-style-object

Solution 2:[2]

You can add below lines in the

chartConfig:{{
    fillShadowGradient:'skyblue',
    fillShadowGradientOpacity:1,
}}

Its works fine

Solution 3:[3]

<BarChart
        data={{
              
              labels: this.state.bLabel,
              datasets: [
                {
                  data: this.state.bData,
                }
              ]
            }}
            width={(Dimensions.get("window").width/100)*98}
            height={300}
            yAxisLabel=""
            chartConfig={this.state.chartConfig}
            verticalLabelRotation={0}
            showValuesOnTopOfBars={true}
            fromZero={true}
            withCustomBarColorFromData={true}//FOR CUSTOM BAR COLORS
            withHorizontalLabels ={false}
            style={{alignSelf:"flex-start"}}
          />
          
          
          
          
          
//Go to 
//node_modules->react-native-chart-kit->dist->BarChart.js
//Change this-> from line no-38 to 50


        _this.renderBars = function (_a) {
            var colorC=["#8000FF80","#0000ff80","#00FFFF80","#00ff0080","#ffff0080","#FFA50080","#ff000080","#2e000080","#00000080","#000000dd"];/////////AYUSH KHADE
            var data = _a.data, width = _a.width, height = _a.height, paddingTop = _a.paddingTop, paddingRight = _a.paddingRight, barRadius = _a.barRadius, withCustomBarColorFromData = _a.withCustomBarColorFromData;
            var baseHeight = _this.calcBaseHeight(data, height);
            return data.map(function (x, i) {
                var barHeight = _this.calcHeight(x, data, height);
                var barWidth = 32 * _this.getBarPercentage();
                return (<Rect key={Math.random()} x={0 +
                    (i * (width - 0)) / data.length +
                    barWidth / 2} y={((barHeight > 0 ? baseHeight - barHeight : baseHeight) / 4) * 3 +
                    paddingTop} rx={barRadius} width={barWidth} height={(Math.abs(barHeight) / 4) * 3} fill={colorC[i]}/>);//AYUSH KHADE
            });
        };
          
          
          
          
          
          

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Plaksel
Solution 2 Chandhan Narayanareddy
Solution 3 Ayush Khade