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