admin管理员组

文章数量:1416050

I've some trouble making changes in the bar of color in the apex chart. The chart is a mixed chart (Line/Bar). I want to change a single bar color.

I've tried the solution is that is to added a fillColor into the series.data as per the apex chart documents but it does not work.

Chart Snap enter image description here

Here is my code. where

response.device.data.values AND response.flowmeter.values is a array of values.

            if (newChart !== null) {
                newChart.destroy();
            }

            var options = {
                chart: {
                    height: 350,
                    stacked: false,
                    height: '400',
                    toolbar: {
                        tools: {
                            download: true,
                            selection: false,
                            zoom: false,
                            zoomin: false,
                            zoomout: false,
                            pan: false,
                            reset: false,
                            customIcons: []
                        }
                    }
                },
                dataLabels: {
                    enabled: false
                },
                stroke: {
                    width: [2, 1],
                    curve: 'stepline'
                },
                yaxis: [
                    {
                        axisTicks: {
                            show: true,
                        },
                        axisBorder: {
                            show: true,
                            color: '#008FFB'
                        },
                        labels: {
                            style: {
                                color: '#008FFB',
                            }
                        },
                        title: {
                            text: "<?=_('Device(s)')?> (m3)",
                            style: {
                                color: '#008FFB'
                            }
                        },
                        tooltip: {
                            enabled: true
                        }
                    },
                    {
                        opposite: true,
                        axisTicks: {
                            show: true,
                        },
                        axisBorder: {
                            show: true,
                            color: '#00E396'
                        },
                        labels: {
                            style: {
                                color: '#00E396',
                            }
                        },
                        title: {
                            text: "<?=_('Flowmeter(s)')?> (m3)",
                            style: {
                                color: '#00E396',
                            }
                        }
                    },
                ],
                tooltip: {
                    followCursor: true,
                },
                legend: {
                    horizontalAlign: 'center',
                    offsetX: 40
                },
                zoom: {
                    enabled: false
                },
                
                xaxis: {
                    categories: response.device.data.labels,
                    labels: {
                        style: {
                            fontSize: '10px'
                        }
                    }
                },
                series: [
                    {
                        name: '<?=_('Device(s)')?>',
                        type: 'line',
                        data: response.device.data.values
                    },
                    {
                        name: '<?=_('Flowmeter(s)')?>',
                        type: 'bar',
                        data: response.flowmeter.values
                    }
                ],
                
            };

            newChart = new ApexCharts(document.querySelector("#new-chart"), options);
            newChart.render();

I've some trouble making changes in the bar of color in the apex chart. The chart is a mixed chart (Line/Bar). I want to change a single bar color.

I've tried the solution is that is to added a fillColor into the series.data as per the apex chart documents but it does not work.

Chart Snap enter image description here

Here is my code. where

response.device.data.values AND response.flowmeter.values is a array of values.

            if (newChart !== null) {
                newChart.destroy();
            }

            var options = {
                chart: {
                    height: 350,
                    stacked: false,
                    height: '400',
                    toolbar: {
                        tools: {
                            download: true,
                            selection: false,
                            zoom: false,
                            zoomin: false,
                            zoomout: false,
                            pan: false,
                            reset: false,
                            customIcons: []
                        }
                    }
                },
                dataLabels: {
                    enabled: false
                },
                stroke: {
                    width: [2, 1],
                    curve: 'stepline'
                },
                yaxis: [
                    {
                        axisTicks: {
                            show: true,
                        },
                        axisBorder: {
                            show: true,
                            color: '#008FFB'
                        },
                        labels: {
                            style: {
                                color: '#008FFB',
                            }
                        },
                        title: {
                            text: "<?=_('Device(s)')?> (m3)",
                            style: {
                                color: '#008FFB'
                            }
                        },
                        tooltip: {
                            enabled: true
                        }
                    },
                    {
                        opposite: true,
                        axisTicks: {
                            show: true,
                        },
                        axisBorder: {
                            show: true,
                            color: '#00E396'
                        },
                        labels: {
                            style: {
                                color: '#00E396',
                            }
                        },
                        title: {
                            text: "<?=_('Flowmeter(s)')?> (m3)",
                            style: {
                                color: '#00E396',
                            }
                        }
                    },
                ],
                tooltip: {
                    followCursor: true,
                },
                legend: {
                    horizontalAlign: 'center',
                    offsetX: 40
                },
                zoom: {
                    enabled: false
                },
                
                xaxis: {
                    categories: response.device.data.labels,
                    labels: {
                        style: {
                            fontSize: '10px'
                        }
                    }
                },
                series: [
                    {
                        name: '<?=_('Device(s)')?>',
                        type: 'line',
                        data: response.device.data.values
                    },
                    {
                        name: '<?=_('Flowmeter(s)')?>',
                        type: 'bar',
                        data: response.flowmeter.values
                    }
                ],
                
            };

            newChart = new ApexCharts(document.querySelector("#new-chart"), options);
            newChart.render();
Share Improve this question edited Aug 5, 2020 at 7:21 Shailesh prajapati asked Aug 5, 2020 at 7:04 Shailesh prajapatiShailesh prajapati 411 silver badge5 bronze badges 1
  • Maybe if you make a live Codesandbox example, that would be easier to test out and debug :) – akmur Commented Aug 5, 2020 at 15:29
Add a ment  | 

3 Answers 3

Reset to default 3

You can set color prop in the object of the series. Somethings like that:

series: [
                {
                    name: '<?=_('Device(s)')?>',
                    type: 'line',
                    color: "00FA9A",
                    data: response.device.data.values
                },
                {
                    name: '<?=_('Flowmeter(s)')?>',
                    type: 'bar',
                    color: "#F44336",
                    data: response.flowmeter.values
                }
            ],
colors: [function({ value, seriesIndex, w }) {
  return colors(value)
}],
    
    
function colors(id) {
  var colors = [
    "#33b2df",
    "#546E7A",
    "#d4526e",
    "#13d8aa",
    "#A5978B",
    "#2b908f",
    "#f9a3a4",
    "#90ee7e",
    "#f48024",
    "#69d2e7"
  ];
  return colors[id] ?? '#33b2df';
}

You could probably make use of passing a function to the fill property. Check this link: https://apexcharts./docs/options/fill/. You can also customize based on the series index.

本文标签: javascriptChange color of single bar in apex chartStack Overflow