如何为NVD3的multichart更新y轴?

时间:2016-11-01 16:41:13

标签: javascript d3.js data-visualization nvd3.js

有一个使用NVD3的multichart构建的堆积区域图表。图表中的值可以更改,我希望y轴根据所选值进行缩放。

如何为multiChart更新yAxis?

我使用forceY更改了其他NVD3图表中的yAxis,但forceY不适用于multiChart。

以下是几种策略。最后一个策略会更改域的值,但新值不会反映在图表上。

感谢您提供的任何帮助。

        //existing domain values -- to be changed
        chart.stack1.yDomain()
         => [-.1, -1.92]

        //new values that I want the y axis to use
        let [padStart, padEnd] = [.12, 0.27]; 

        //DOESNT WORK - this changes the yDomain of stack1, but does not change yAxis1.domain
        //  chart.stack1.yDomain([padStart, padEnd]);

        //DOESNT WORK - error -chart.forceY is not a function
        //  chart.forceY(padStart, padEnd);

        //DOESNT WORK - error - chart.yAxis1.forceY is not a function
        //  chart.yAxis1.forceY(padStart, padEnd);

        //DOESNT WORK - this does not change domain value
        //  chart.yAxis1.scale().domain([padStart, padEnd]);

        //WORKS -- this changes domain value, but the view doesn't update
        chart.yAxis1.domain([padStart, padEnd]);

1 个答案:

答案 0 :(得分:1)

multichart的正确方法是直接访问yDomain:

chart.yDomain([padStart, padEnd])