2017-02-27 108 views
0

我正在制作一个已经分组了数据的c3图表,并且我希望有一个显示最大值的y轴网格线,即组合的数据不应超过。如何动态设置c3图表的y轴缩放比例?

因此,y轴网格线可以被称为“最大”

我知道如何使电网,但它并不总是显示,因为分组的数据可能远低于电网值。但我希望网格始终显示。

我看着y轴的填充,但它使用像素,很难准确。

是否有一种方法可以将y轴设置为显示比5轴更大的值,而不管y轴网格线是多少?

回答

1

不幸的是,C3没有设置“将Y轴设置为最大值或最大值”。不过,我们假设您已经使用下面的方法添加了网格线。然后,您可以在这里设置显示的y轴填充和使用设置的最大值:

grid: { 
    y: { 
     lines: [{ value: 20 }], 
    } 
}, 
axis: { 
    y: { 
     padding: {top:5, bottom,0}, 
     max: 20 
    } 
} 

在这种情况下,我已设置的最大值是一样的网格线值,用于填充,以创建一个小的空间它上面。这将处理您的数据低于网格线的情况。但是,如果您的数据超过(网格线+填充)总数,则图表不会增长以适应该数据,因为最大设置是固定的。所以,如果你的数据大于最大值,你需要动态地改变这个最大值,如果你的数据大于最大值,你可以通过查找数据的最大值来设置最大值,如果超过了网格线值,那么就是这样...

if(highValue > gridlineValue) 
    chart.axis.max(highValue); 
else 
    chart.axis.max(gridlineValue); 

我刚刚注意到您的数据从未超出网格线,因此您可以使用此答案的第一部分。我已经把剩下的留在了这里,以防其他人想要更动态的解决方案。请注意,如果您希望将其明确设置为高于网格线的值,则也可以使用不带填充的最大值。

+0

数据实际上可能超过网格线,但它不应该是因为那样会不好。所以,谢谢最后一部分。 – geogeogeo

0

在撰写本文时,实际上有一种方法可以将y-max重置为动态,并将其设置为特定的最大值。您可以将最大值设置为undefined,如下所示:chart.axis.max(undefined);

在这里,有一个工作jsfiddle

相关问题