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

Change range for one y axis nvd3/d3

本文关键字:范围 nvd3 d3 一个 改变      更新时间:2023-09-26

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

我已经尝试做以下

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

但这似乎不起作用

.forceY ([0, max_y])

它告诉我没有强制函数

任何想法?

您可以在线形图或条形图中强制使用NVD3中的最小值和最大值,尝试如下:

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

.domain([0, max_y])应该用于缩放对象,而不是轴对象。

:

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

这应该可以工作;如果没有,你应该把你有什么作为jsfiddle。

我发现解决问题的唯一方法是在图表定义中添加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],

来源:Alex的解决方案。在另一篇文章