javascript - 为 D3.js 图设置零基线

标签 javascript d3.js nvd3.js

我们有一个图表,当所有数据为零时,在 y 轴中间显示零美元值,并在下面显示一些负值。最好将零放在底部,将美元值(value)放在侧面。

这是图形代码:

nv.addGraph(function() {
    var chart = nv.models.multiBarChart()
      .transitionDuration(350)
      .reduceXTicks(false)
      .rotateLabels(0)
      .showControls(false)   //Allow user to switch between 'Grouped' and 'Stacked' mode.
      .groupSpacing(0.1)
      .tooltipContent(function (key, y, e, graph) {
          return '<p> Total Cost: $' + graph.value + '</p>';
      })
    ;

    chart.xAxis
        .tickFormat(function(d) { return d3.time.format('%b, %y')(new Date(d)); });

    chart.yAxis
        .tickFormat(function(d) { return '$' + d3.format(',f')(d) });
    d3.select('#hardware_costs_graph svg')
        .datum(exampleData())
        .call(chart);

    nv.utils.windowResize(chart.update);

    return chart;
  });

如何更改基线以便不显示负值?

最佳答案

谢谢拉尔斯。我确实搜索了这个答案一段时间,但找不到。

这是为任何需要它的人提供的解决方案。

向图表实例化添加了forceY:

var chart = nv.models.multiBarChart()
      .transitionDuration(350)
      .reduceXTicks(false)
      .rotateLabels(0)
      .showControls(false)   //Allow user to switch between 'Grouped' and 'Stacked' mode.
      .groupSpacing(0.1)
      .tooltipContent(function (key, y, e, graph) {
          return '<p> Total Cost: $' + graph.value + '</p>';
      })
      .forceY([0,5])
    ;

关于javascript - 为 D3.js 图设置零基线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505779/

相关文章:

javascript - jquery ui 可在旋转的 div 中拖动

javascript - 使用 nvd3.js 库将 '%' 符号添加到 y 轴上的所有刻度而不乘以 100

javascript - D3 : Uncaught ReferenceError: stream_layers is not defined

javascript - 如何在使用javascript单击另一个类时取消选择一个类

javascript - 如何调整 d3.js 脚本的大小?有没有办法将其放入 div 标签中,以便我可以将条形图调整得更小?

javascript - VueJs - v-for 结果的条件语句/过滤器

javascript - 将对象序列化为 JSON

javascript - Node JS : io is not defined error on frontend

animation - D3.js - 嵌套对象的动画退出

javascript - D3 区分具有拖动行为的元素的单击和拖动