NVD3 / D3改变y轴最小值

时间:2013-06-12 14:04:11

标签: javascript d3.js nvd3.js

我目前正在使用NVD3制作几个折线图。我想知道是否有可能使y轴滴答始终从0开始。目前它总是从最低的y值开始。我尝试过使用tickValues,但我不想更改其他值。我还试图添加一个值为0的数据点,但这似乎是一种解决方法,它会影响图形的外观。有什么想法吗?

4 个答案:

答案 0 :(得分:29)

大多数图表都有一个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,它们将会显示。

答案 1 :(得分:9)

您无需添加“虚拟”数据点,您只需调整比例的输入域,例如:

之类的东西
chart.yAxis.scale().domain([0, maxValue]);

答案 2 :(得分:1)

我发现这个测试页在nvd3图表上找出属性非常有用(即使你不使用有角度的btw也适用)

https://krispo.github.io/angular-nvd3/#/lineChart

  • 点击'扩展'
  • 点击+
  • 旁边的forceY符号
  • 键入-5之类的值,然后将其添加以立即查看效果(示例图已经显示为零)。

答案 3 :(得分:0)

您只能通过chart.forceX(0)设置最小值