javascript - 如何更改 Apexcharts RadialBar Charts 中非进度条的颜色?

标签 javascript reactjs svg apexcharts

我正在研究 Apexcharts RadialBar Charts。我能够实现此图表,但我正在尝试将未进展部分的灰色颜色更改为蓝色。

代码

import React, { Component } from 'react';
import ReactApexChart from 'react-apexcharts';

export default class GaugeChart extends Component {
    constructor(props) {
        super(props);
        this.state = {
            isLoaded: false,
            error: "",
            value: 90,
            openChart: false,
            options: {
                chart: {
                    offsetY: -10
                },
                plotOptions: {
                    radialBar: {
                        startAngle: -135,
                        endAngle: 135,
                        fill: "#1cbd00",
                        border: '1px solid black',
                        dataLabels: {
                            border: "1px solid #fac5c7",
                            name: {
                                fontSize: '14px',
                                color: "#636363",
                                fontFamily: 'SegoeUI',
                                offsetY: 20,
                            },
                            value: {
                                offsetY: -20,
                                fontSize: '36px',
                                color: "#636363",
                                fontFamily: 'SegoeUI',
                                formatter: function (val) {
                                    let labelValue = ((val / 100) * 90000) | 0;
                                    if(labelValue && labelValue > 9999) {
                                        // Nine Zeroes for Billions
                                        return Math.abs(Number(labelValue)) >= 1.0e+9

                                        ? Math.abs(Number(labelValue)) / 1.0e+9 + "B"
                                        // Six Zeroes for Millions 
                                        : Math.abs(Number(labelValue)) >= 1.0e+6

                                        ? Math.abs(Number(labelValue)) / 1.0e+6 + "M"
                                        // Three Zeroes for Thousands
                                        : Math.abs(Number(labelValue)) >= 1.0e+3

                                        ? Math.abs(Number(labelValue)) / 1.0e+3 + "K"

                                        : Math.abs(Number(labelValue));
                                    } else {
                                        return labelValue;
                                    }
                                }
                            }
                        }
                    }
                },
                fill: {
                    opacity: 1.5,
                    colors: ['#ff9966'],
                    type: 'gradient',
                    gradient: {
                        gradientToColors: ['#ff5e62'],
                        shadeIntensity: 1,
                        opacityFrom: 1,
                        opacityTo: 2,
                        stops: [0, 50, 100],
                        inverseColors: false
                    },
                },
                // stroke: {
                //     lineCap: "round"
                // },
                labels: ['Audience']
            }
        }
    }

    numberConverter = function(labelValue) {

        if(labelValue && labelValue > 9999) {
            // Nine Zeroes for Billions
            return Math.abs(Number(labelValue)) >= 1.0e+9

            ? Math.abs(Number(labelValue)) / 1.0e+9 + "B"
            // Six Zeroes for Millions 
            : Math.abs(Number(labelValue)) >= 1.0e+6

            ? Math.abs(Number(labelValue)) / 1.0e+6 + "M"
            // Three Zeroes for Thousands
            : Math.abs(Number(labelValue)) >= 1.0e+3

            ? Math.abs(Number(labelValue)) / 1.0e+3 + "K"

            : Math.abs(Number(labelValue));
        } else {
            return labelValue;
        }

    }

    render() {
        let series = [];
        let percentage = (10000 / 90000) * 100;
        series.push(percentage);

        return <React.Fragment>
            <div className="row">
                <div className="col-md-12 col-sm-12 col-lg-12 col-xs-12 text-center">
                    <ReactApexChart
                        options={this.state.options}
                        series={series}
                        type="radialBar"
                        height="480"
                    />
                </div>
            </div>
            <div className="row">
                <div className="col-md-6 col-sm-6 col-lg-6 col-xs-6 min-max-div">
                    <span className="min-text">0</span>
                </div>
                <div className="col-md-6 col-sm-6 col-lg-6 col-xs-6 min-max-div">
                    <span className="max-text">{this.numberConverter(10000)}</span>
                </div>
            </div><br /><br />
        </React.Fragment>
    }
}

蓝色下方的东西需要更改为蓝色。现在它显示为灰色。 enter image description here

最佳答案

非进展区域在 ApexCharts 径向条中称为轨道。

试试这个

plotOptions: {
    radialBar: {
        track: {
          background: '#1cbd00'
        }
    }
}

关于javascript - 如何更改 Apexcharts RadialBar Charts 中非进度条的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59389233/

相关文章:

选择框中的 JavaScript for 循环

javascript - 当列表后面有内容时,自动建议 Ajax 不会链接

javascript - 将文本转换为音频的工具

reactjs - PropTypes.exact 和 PropTypes.shape 之间的区别

javascript - Nginx 忽略/api 位置指令与 react-router 4,除了在 firefox 隐私浏览中

html - SVG 改变特定颜色 - CSS & JS

javascript - 限制发布请求的数量(Javascript + node.js + jQuery)

reactjs - setState 不会重新渲染 React 功能组件

javascript - 是xlink :href deprecated for svg <image>s?

css - 将 SVG 图标定位为列表样式图像