ChartJS 标绘的条形图与不同的颜色React,但它们都是黑色的,为什么?

wmvff8tz  于 2022-11-07  发布在  Chart.js
关注(0)|答案(2)|浏览(105)

我想用不同的颜色为ABC绘制我的柱状图,但我有3个相同颜色的柱状图,即黑色,我猜这是在fill字段问题中。如果我只绘制一个柱状图,那么它将以正确的颜色打印,但当它超过1时,它将全部为黑色。我使用recharts
有什么想法吗?

export default function Overview() {
    const { ratingBar } = graphs ?? {}

    const COLORS = {
        'A': 'red',
        'B': 'green',
        'C': 'orange',
    }

    function ratingGraph() {
        const data = ratingBar
        return ({
            graph: {
                type: 'bar',
                showTooltip: true,
                showXAxis: true,
                showYAxis: true,
                showLegend: true,
                container: {
                    data,
                },
                bars: [
                    {
                        dataKey: 'count',
                        fill: COLORS[data.map((m) => m.title)],
                    }
                ],
                xaxis: {
                    dataKey: 'title',
                    tick: { style: { fontSize: '.9rem' } },
                },
                yaxis: {
                    dataKey: 'count',
                    domain: [0, 100],
                },
            },
        }).graph
    }

    return (
        <div >

            {...ratingGraph()}

        </div>
    )
}

下面是我的api数据:

{
    "ratingBar": [
        {
            "title": "A",
            "count": 2
        },
        {
            "title": "B",
            "count": 48
        },
        {
            "title": "C",
            "count": 78
        }
    ]
}
6mzjoqzu

6mzjoqzu1#

fill: data.map(m => COLORS[m.title])

你的Map是错误的。我猜填充需要一个颜色数组。但是你正在访问一个Map数组的COLORS键,这个数组总是未定义的。

j2cgzkjk

j2cgzkjk2#

您 必须 使用 单元 格 属性 :

cells: data.map(m => ({fill: COLORS[m.title]}))

中 的 每 一 个

相关问题