d3.js和nvd3.js - 获取y轴的最小/最大值

5

我正在使用NVD3的lineChart模型。

我需要强制设置y轴最小和最大值,相对于实际值,例如:

chart.lines.forceY([min/1.1,max*1.1]);

我如何获取当前的y轴最小/最大值?

2个回答

5
您可以通过chart.yAxis.scale().domain()获取当前域名。

我不需要域名,而是确切的最小值和最大值。在我的情况下,chart.yAxis.scale().domain()返回一个数组:[0, 1]。 - gipadm
你可以在数据上使用 d3.extent 来实现这个功能。 - Lars Kotthoff
是的,我可以始终从数据中获取最小值和最大值,但这将是冗余计算。我正在询问是否有一种方法可以直接从图表对象中查询这些值,因为它们已经计算出来了。 - gipadm
除非它们被设置为比例的域,否则不会。 - Lars Kotthoff
它们没有设置为域。 - gipadm
那么你就需要重新计算它们。 - Lars Kotthoff

2

如果您已经设置了y轴域,如下所示:

var yAxis = d3.svg.axis().scale(y)
    .orient("left").ticks(5);

y.domain([0, d3.max(yourData)]);

您可以通过y访问这些值。 y[0] 是最小值,y[1] 是最大值。


这是正确的答案。也可以尝试使用d3.extent(y.domain()),以简单的数组形式返回y轴上的下限和上限值。 - Mo Gauvin
附加说明:一旦确定了有界值,您可以直接使用y(min)或y(max)来获取指定范围的映射边界。 - Mo Gauvin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接