更改一个y轴nvd3 / d3的范围

时间:2013-06-12 16:05:00

标签: javascript d3.js nvd3.js

我目前正在使用multiChart模型,我有两个不同的y轴。我想要更改两个轴,使它们从0开始,因为它们目前从最小的y数据点开始。

我尝试过以下

chart.yAxis1
tickFormat(d3.format(',.f'))
.domain([0,max_y]);

但这似乎不起作用

.forceY ([0, max_y])

它告诉我没有强制功能

有什么想法吗?

3 个答案:

答案 0 :(得分:10)

您可以在NVD3中强制显示行或条形图的最小值和最大值,请尝试以下操作:

chart.bars.forceY([0]);

chart.lines.forceY([0,100]);

答案 1 :(得分:1)

.domain([0, max_y])应在scale对象上使用,而不是axis object

所以:

var yScale = d3.scale.linear().domain([0,max_y])
var yAxis  = d3.svg.axis().scale(yScale)

这应该有用;如果没有,你应该发布你的jsfiddle

答案 2 :(得分:0)

我发现解决问题的唯一方法是在图表定义中添加yDomain1或yDomain2

对于nvd3:

var chart = nv.models.multiChart()
    .yDomain1([-20, 80]) 
    .yDomain2([-50, 200])

对于nvd3 AngularJS:

$scope.dashOptions = {
    chart : {
        type : 'multiChart',
        yDomain1:[-20, 80],
        yDomain2:[-50, 100],

来源: Solution by Alex. in another post