当序列计数变化时,使用NVD3维护堆叠/分组多条形图的颜色映射

Maintain color mapping for Stacked/Grouped Multi-Bar Chart using NVD3 when the series count fluxuates

本文关键字:条形图 色映射 颜色 维护 变化 NVD3 使用      更新时间:2023-09-26

当只有一个系列时,是否有方法使用NVD3设置系列的颜色,同时在添加第二个系列时保持颜色映射?

我知道如何使用.color()为2个系列设置颜色,如下所示:

.color(['#FF0000', '#0026FF'])

当有2个系列时,映射是正确的,但如果只有一个系列,映射是错误的。

我有一系列的条形图([yearOne,yearTwo])映射到颜色([红色,蓝色]),它起作用:

第一年:红色

第二年:蓝色

然而,当我将1个系列映射到2种颜色时,直到出现第二个系列时,颜色才会正确映射。

第二年:红色

空:蓝色

我希望第一年总是映射到红色,即使第二年的数据没有出现。

我已经为各个条形图添加了一个颜色属性,但这不是干净的,也不会自动映射图例颜色。

nv.addGraph(function() {
    var chart = nv.models.multiBarChart();
    chart.xAxis
        .tickFormat(d3.format(',f'));
    chart.yAxis
        .tickFormat(d3.format(',.1f'));
    chart.color(['#FF0000', '#0026FF'])
    d3.select('#chart svg')
        .datum(data())
        .transition().duration(500)
        .call(chart)
        ;
    nv.utils.windowResize(chart.update);
    return chart;
});

您需要的是"对象恒定性"。链接中的解释应该会让你明白。