Vie*_*iet 54 javascript d3.js nvd3.js
我正在尝试将图表的y轴范围设置为1-100.
咨询了API文档,并找到了一个可能的解决方案,其中包含了axis.tickValues,如 https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-tickValues
但是,使用该选项不起作用.进一步阅读上面在axis.tickSize下面链接的文档页面,发现以下行
结束标记由相关比例的域范围确定,并且是生成的路径域的一部分而不是刻度线
所以我认为设置范围的最小值和最大值不能通过Axis选项完成.
关于我可以指定范围的任何想法?
Vie*_*iet 78
找到了解决方案.
附加.forceY([0,100])到图表的实例化会强制轴采用数组中指定的范围.
从这里的例子http://nvd3.org/livecode/#codemirrorNav
附加.forceY([0,100])到图表变量有效.
Bob*_*rde 32
正如名称所示,这会将数组中的值添加到您的y域中,而不会将y域设置为[0,100].所以,如果你将其设置为[0,100]您的信息的域名是-10到110,该域名将是[-10,110].
现在,如果您希望域名[0,100]即使您的数据更大,也可以使用chart.yDomain([0,100])...但通常您希望您的域名包含您的数据,因此我强烈建议您使用chart.forceY代替chart.yDomain.正如您将看到的,forceY最常见的用途之一是forceY([0])始终在域中使0.
希望能帮助您了解函数的实际功能,以及arboc7,这可以解释为什么它不能使范围小于数据集.
如果您的意思是设置y-domain堆积区域图表(应显示的数字范围),这对我有用:
nv.models.stackedAreaChart()
.x(function(d) {...})
.y(function(d) {...})
.yDomain([0, maxY])
...
Run Code Online (Sandbox Code Playgroud)