我正在创建一个包含数据分组的c3图表,并且我希望有一个显示最大值的y轴网格线,组合的数据组合不应超过。
因此,可以调用y轴网格线"最大"
我知道如何制作网格,但它并不总是显示,因为分组的数据可能低于网格值。但我希望网格始终显示。
我看了y轴的填充,但它使用的是像素,很难准确。
是否只有将y轴设置为显示比y轴网格线更大的5个值?
答案 0 :(得分:1)
不幸的是,C3没有设置"将Y轴设置为y值或最大数据的最大值"。但是,我们假设您使用下面的方法添加了一个网格线。然后,您可以使用此处显示的设置设置y轴填充和最大值:
grid: {
y: {
lines: [{ value: 20 }],
}
},
axis: {
y: {
padding: {top:5, bottom,0},
max: 20
}
}
在这种情况下,我将最大值设置为与网格线值相同,并使用填充在其上方创建一个小空间。这将处理您的数据低于网格线的情况。但是,如果您的数据超过(网格线+填充)总数,那么图表不会增长以容纳该数据,因为最大设置是固定的。因此,如果您的数据大于最大值,则需要使用javascript动态更改此最大值,方法是找到数据中的最大值,如果超过网格线值,则将max设置为高于此值,如下所示...
if(highValue > gridlineValue)
chart.axis.max(highValue);
else
chart.axis.max(gridlineValue);
我刚注意到您的数据从未超过网格线,因此您可以使用此答案的第一部分。我已将其余部分留在这里,以防其他人想要更动态的解决方案。请注意,如果要将其显式设置为高于网格线的值,也可以仅使用最大值而不使用填充。
答案 1 :(得分:1)
在撰写本文时,实际上有一种方法可以在将y-max设置为特定最大值后将其重置为动态。您可以将max设置为System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
,如下所示:undefined
。
在这里,有一个有效的jsfiddle。