Javascript NVD3/D3改变y轴最小值
我目前正在使用NVD3制作一些折线图。我想知道是否有可能使y轴刻度始终从0开始。目前,它总是从最低的y值开始。我已尝试使用TickValue,但不想更改其他值。我还尝试添加一个值为0的数据点,但这似乎是一个解决方法,它会影响图形的外观。有什么想法吗?您不需要添加“虚拟”数据点,只需调整标尺的输入域,例如Javascript NVD3/D3改变y轴最小值,javascript,d3.js,nvd3.js,Javascript,D3.js,Nvd3.js,我目前正在使用NVD3制作一些折线图。我想知道是否有可能使y轴刻度始终从0开始。目前,它总是从最低的y值开始。我已尝试使用TickValue,但不想更改其他值。我还尝试添加一个值为0的数据点,但这似乎是一个解决方法,它会影响图形的外观。有什么想法吗?您不需要添加“虚拟”数据点,只需调整标尺的输入域,例如 chart.yAxis.scale().domain([0, maxValue]); 大多数图表都有forceX和forceY函数,它们接受一个值数组。您可以这样使用它: var char
chart.yAxis.scale().domain([0, maxValue]);
大多数图表都有forceX和forceY函数,它们接受一个值数组。您可以这样使用它:
var chart = nv.models.lineChart();
chart.forceX([0, 10])
chart.forceY([-1, 1])
这将确保在xAxis上始终显示至少0和10,但如果直接操作域,则不会限制域。也就是说,如果您执行以下操作:
chart.yAxis.scale().domain([0, maxValue]);
您的数据有负X值,不会显示在图表上,因为它们不在指定的域内,但如果您使用forceX,它们会出现。我发现此测试页在计算nvd3图表的属性时非常有用(即使您不使用angular btw,也适用)
- 单击“扩展”
- 单击
forceY
- 键入一个值,如
,然后将其添加以立即查看效果(示例图中已显示零)-5
maxValue
?我使用的是nvd3箱线图,没有显示异常值。所以我想用图表计算的最大值作为上限。你可以从你的数据中得到最大值。值得注意的是,这不适用于多图表。在我意识到这一点之前,我一直在试图弄明白为什么这对我的图表不起作用