nvd3/d3.js一个条形图放在另一个条形图上

nvd3/d3.js一个条形图放在另一个条形图上,d3.js,nvd3.js,D3.js,Nvd3.js,我有两个系列,最大值和平均值,每个系列包含一个月内所有天数的值。在我们的桌面软件中,我们用条形图显示这些数据,其中平均序列叠加在最大序列上。因为平均值永远不能大于最大值,所以隐藏条没有问题 在NVD3中,我只找到了对条进行分组或堆叠的选项。分组占用了太多的空间。在另一侧堆叠将显示上部钢筋的错误值。只有当两个条从底部轴开始时,才能从y轴读取它们的实际值 这可以在NVD3中以任何方式实现吗 如果不是直接在NVD3中,是否可以通过访问底层d3对象来实现?这是一种方法。您可以使用多重条形图,仅启用堆叠选

我有两个系列,最大值和平均值,每个系列包含一个月内所有天数的值。在我们的桌面软件中,我们用条形图显示这些数据,其中平均序列叠加在最大序列上。因为平均值永远不能大于最大值,所以隐藏条没有问题

在NVD3中,我只找到了对条进行分组或堆叠的选项。分组占用了太多的空间。在另一侧堆叠将显示上部钢筋的错误值。只有当两个条从底部轴开始时,才能从y轴读取它们的实际值

这可以在NVD3中以任何方式实现吗


如果不是直接在NVD3中,是否可以通过访问底层d3对象来实现?

这是一种方法。您可以使用多重条形图,仅启用堆叠选项,并禁用默认显示的控件

在我个人看来,我建议根据你想要实现的目标选择原生D3

var图表=nv.models.multiBarChart.stackedtrue.showControlsfalse; d3.选择“图表svg”。基准面[ { 关键词:平均值, 颜色:51A351, 价值观: [ {x:Jan 1,y:40}, {x:Jan 2,y:30}, ] }, { 钥匙:马克斯, 颜色:BD362F, 价值观: [ {x:Jan 1,y:12}, {x:Jan 2,y:8}, ] } ].transition.duration500.callchart;
谢谢,但我不知道它是如何解决这个问题的。首先,您的示例数据忽略了一个事实,即最大值总是高于平均值。但实际问题是,1月1日f.e.的最大值显示为52,而不是12,因为钢筋是堆叠的。我希望它们被覆盖,这样每个条形图的值都可以从y轴正确读取。我试图在显示之前从最大值中减去平均值,但工具提示显示的值不正确。@NicolasR,有一种方法可以为工具提示提供自定义渲染器,请参阅此处-。另外,正如我所说,NVD3不像其他基于d3的包装器/框架和本机软件那样灵活。因此,解决方案必须是hacky.ok,结合自定义工具提示,它应该可以工作。实际上,我愿意切换到纯d3,但对于第一个预览版本,我认为使用nvd3是个好主意。