如何在discreteBarChart nvd3.js上设置y轴上的域和比例

我在我的一个应用程序中使用d3.js图表​​.
他们在这图片
Charts

对于货币图表上的Y轴(参见图片),我希望最大值四舍五入为400,无论这里的最大条形尺寸是358.72美元,但我想保持在358.72,但在Y轴上它将是400限制.

代码在这里

TradesChart = [ 
      {
        key: "Cumulative Return",values: [
                        {
            "label" : "6E","value" : 100       },{
            "label" : "NG",{
            "label" : "TF","value" : 67        }        ]
      }
    ];
        nv.addGraph(function() {

      var chart = nv.models.discreteBarChart()
          .x(function(d) { return d.label })
          .y(function(d) { return d.value/100 })
          .staggerLabels(true)
          .showValues(true)
          .valueFormat(d3.format('.0%'))

      chart.yAxis.tickFormat(function(d) { return d3.format('d')(d*100) + '%'; });

      d3.select('#chart-Trades svg')
        .datum(TradesChart)
        .transition().duration(500)
        .call(chart);

      nv.utils.windowResize(chart.update);

      return chart;
    });

请帮我解决这个问题

解决方法

您需要修改Y轴刻度的域.通常它是使用如下语句从数据的最大值派生的:
yScale.domain([0,d3.max(data,function (d) { return d.v; }) ]);

在您的情况下,您应该将其修改为更像这样:

yScale.domain([0,400]);

或者,如果要从数据或最小静态值设置最大值,可以执行以下操作:

yScale.domain([0,function (d) { return d.v > 400 ? d.v : 400; }) ]);

一个完整的示例jsfiddlehere.

这是用D3.js做的,我不熟悉古老的nvd3.js lib,所以我不知道如何访问比例,但我会看一看,看看能不能找到它.

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面