6

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

我尝试过以下操作

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

但这似乎不起作用

.forceY ([0, max_y])

它告诉我没有 forceY 功能

有任何想法吗?

4

3 回答 3

10

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

chart.bars.forceY([0]);

chart.lines.forceY([0,100]);
于 2013-08-02T15:25:27.000 回答
1

.domain([0, max_y])应该用于比例对象,而不是轴对象

所以:

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

这应该有效;如果没有,您应该将您拥有的内容发布为jsfiddle

于 2013-06-12T16:12:16.193 回答
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],

资料来源: Alex 的解决方案。在另一个帖子中

于 2019-11-29T16:30:56.030 回答