d3.js & nvd3.js -- How to set y-axis range
I'm trying to set the y-axis range of the chart from 1-100.
Consulted the API documentation and found a possible solution with axis.tickValues as seen here https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-tickValues
However, using the option does not work. Reading further down on the documentation page linked above under axis.tickSize, the following line was spotted
The end ticks are determined by the associated scale's domain extent, and are part of the generated path domain rather than a tick line
So I take it setting the min and max of the range can't be done through the Axis option.
Any ideas on where I can specify the range?
Solution 1:
Found a solution.
Appending .forceY([0,100])
to the instantiation of the chart forces the axis to take on the range specified in the array.
From the example here http://nvd3.org/livecode/#codemirrorNav
Appending .forceY([0,100])
to the chart variable works.
Solution 2:
As the name should suggest, this adds the values in the array to your y
domain, it does not set the y domain to [0,100]
. So if you set this to [0,100]
and your data's domain is -10
to 110
, the domain will be [-10,110]
.
Now if you wanted the domain to be [0,100]
even if your data is larger you can use chart.yDomain([0,100])
... BUT usually you want your domain to include or your data, so I highly recommend using chart.forceY instead of chart.yDomain
. As you'll see, one of the most common uses for forceY is forceY([0])
to make 0 always in the domain.
Hope that helps you understand what the function is actually doing, and arboc7, this should explain why it doesn't work in making the range smaller than the data set's.