D3.js 在nvd3多柱状图中,某些堆栈会失去颜色或变得不可见

D3.js 在nvd3多柱状图中,某些堆栈会失去颜色或变得不可见,d3.js,nvd3.js,D3.js,Nvd3.js,如何确保nvd3中多条形图中的条形图始终从同一级别开始?我所看到的是,一些系列开始有点“漂浮”在空气中(实际上其中一个堆栈失去了颜色) 请查看并单击“堆叠”选项(初始设置-这是另一个问题) 我的数据系列非常短,只有3行—一个子系列中有2行,另一个子系列中有1行 data_multiBarChart = [{ 'values': [ { 'y': 7, 'x': 9 }], 'key': 'Count', 'y

如何确保nvd3中多条形图中的条形图始终从同一级别开始?我所看到的是,一些系列开始有点“漂浮”在空气中(实际上其中一个堆栈失去了颜色)

请查看并单击“堆叠”选项(初始设置-这是另一个问题)

我的数据系列非常短,只有3行—一个子系列中有2行,另一个子系列中有1行

data_multiBarChart = [{
    'values': [ {
        'y': 7,
            'x': 9
    }],
        'key': 'Count',
        'yAxis': '1'
}, {
    'values': [{
        'y': 12,
            'x': 0
    }, {
        'y': 8,
            'x': 1
    }],
        'key': 'Duration',
        'yAxis': '1'
}];
谢谢

--编辑--

在firebug控制台中看到FWIW警告:

Unexpected value NaN parsing height attribute.
this.setAttribute(name, f(t));
我还看到了类似的稀疏数据:

Unexpected value NaN parsing height attribute.
...3.interpolateRgb=function(e,t){e=d3.rgb(e),t=d3.rgb(t);var n=e.r,r=e.g,i=e.b,s=t...

这是因为您正在传递到图表中的数据。图表中的子系列计数必须相等,如果没有值,则必须至少将y值设置为0

多条形图包含两个或多个类别或条形图的比较。绘制图表时,
必须在一个序列中,请查看
X轴
是如何在这个序列中排列的

尝试使用如下所示的数据:

data_multiBarChart = [{
    'values': [{
        'y': 0,
            'x': 1
    }, {
        'y': 8,
            'x': 2
    }],
        'key': 'Count',
        'yAxis': '1'
}, {
    'values': [{
        'y': 12,
            'x': 1
    }, {
        'y': 8,
            'x': 2
    }],
        'key': 'Duration',
        'yAxis': '1'
}];

希望我说的有道理,能帮助你解决问题。

它解释了(+1),但不能解决问题。为什么要在以前存在“null”的地方强制使用“0”?例如,它可能会干扰onclick/callback参数。如果渲染器需要进行假设,那么这就是进行假设的地方。多条形图的X轴和Y轴需要一个整数,因此空值不起作用。如果您不想在这两个子系列之间进行比较,可以尝试使用NVD3离散图表。说到底,NVD3只是一组可重用的图表,它是为一般用途而构建的,如果您试图超越它们提供的功能,您可能需要修改源代码,或者创建自己的图表。