nvd3 + lineplusbarchart +对齐轴

时间:2014-03-17 20:31:26

标签: javascript d3.js nvd3.js

不确定我是否正确地采取了这种做法,但是这里......

所以我有这个例子see fiddle here 使用lineplusbarchart,我正在建立它,我在这里发布的这个问题: SO question

我编辑了lineplusbarchart以显示xaxis上的标签:

    chart.xAxis.tickFormat(function(d) {
  var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
          return dx;
      })
      .showMaxMin(false);

但我仍然有几个问题要得到我想要的......

1 - >
如何使y1和y2轴对齐? (理想情况下,只有一个轴会很好)
2 - >
如何移除y2轴? (soution here但这不起作用,因为我想要2轴对齐)
3 - >
如何使label1和label5的条形图部分的厚度与其他部分(lable2,3和4)的厚度相同?

1 个答案:

答案 0 :(得分:3)

希望这会有所帮助:

  1. 您可以使用chart.lines.forceY()来设置范围。为了做到这一点 使用动态值我建议找到附加数据的总体最大值 并将它用于酒吧和线条。例如:

    var maxValue = d3.max(d3.entries(testdata), function(d) {
            return d3.max(d3.entries(d.value.values), function(e) {
                return e.value.y;
            });
        }),
        minValue = 0;
    
    chart.bars.forceY([minValue, maxValue]);
    chart.lines.forceY([minValue, maxValue]);
    
  2. 您发布的解决方案正是我的意思。
  3. 删除padData()