值参数的每一次变化和显示都会导致误导性的标签。出于这个原因,您需要根据需要设置轴最小值()、设置轴最大值()、设置粒度()和设置标签计数(),然后只显示您想要的标签。
例如,如果你想显示秒,你可以像这样设置这些参数:
YAxis yAxis = chartName.getAxisLeft();
yAxis.setAxisMinimum(0);//start from 0am
yAxis.setAxisMaximum(86400);//seconds of day
yAxis.setGranularityEnabled(true);
yAxis.setGranularity(1);//values interval
yAxis.setLabelCount(25, true);//from 0 to 24
这会将 ValueFormatter 中的 value 参数设置为 25 个部分,这将是相等的,因此当您除以 3600 得到小时时,它将是偶数。
chartNmae.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
Log.i("Y axis: ", value / 3600 + "h");
int hour = (int)value / 3600;
//if you only want to show some of the values/labels then filter them
return hour % 2 == 0 ? hour + ":00" : "";//return even hour or make the label empty
}
日志猫:
Y axis:: 0.0h
Y axis:: 1.0h
Y axis:: 2.0h
Y axis:: 3.0h
Y axis:: 4.0h
Y axis:: 5.0h
Y axis:: 6.0h
Y axis:: 7.0h
Y axis:: 8.0h
Y axis:: 9.0h
Y axis:: 10.0h
Y axis:: 11.0h
Y axis:: 12.0h
Y axis:: 13.0h
Y axis:: 14.0h
Y axis:: 15.0h
Y axis:: 16.0h
Y axis:: 17.0h
Y axis:: 18.0h
Y axis:: 19.0h
Y axis:: 20.0h
Y axis:: 21.0h
Y axis:: 22.0h
Y axis:: 23.0h
Y axis:: 24.0h
您在图表中的值/条目是相同的,可能是浮动的,但标签将是整数,并将设置在正确的位置。因此,如果数据集中的条目是 36600(上午 10:10),它应该出现在上午 10:00 以上的 1/6 处。
但是,如果我们将轴最大值稍微更改为 setAxisMaximum(86000),那么 ValueFormatter 将传递带有小数点后分数的参数。我们仍然可以通过向下舍入 ValueFormatter 参数(值)并将其作为标签返回来获得偶数分,但与其关联的值会稍微显示如下,现在上午 10:10(36600 数据集条目)将出现在 10:00 标签旁边(不是1/6 以上),因为我们将标签实际值四舍五入,但将其显示在轴上的保留位置。这就像把你的手表放在后面 10 分钟然后看着它。它可能显示上午 10:00,但实际上是上午 10:10。
日志猫:
Y axis:: 0.0h
Y axis:: 0.9953703h
Y axis:: 1.9907407h
Y axis:: 2.9861112h
Y axis:: 3.9814813h
Y axis:: 4.9768515h
Y axis:: 5.9722223h
Y axis:: 6.9675927h
Y axis:: 7.962963h
Y axis:: 8.958334h
Y axis:: 9.953705h
Y axis:: 10.949075h
Y axis:: 11.944445h
Y axis:: 12.939815h
Y axis:: 13.9351845h
Y axis:: 14.930554h
Y axis:: 15.925924h
Y axis:: 16.921295h
Y axis:: 17.916664h
Y axis:: 18.912035h
Y axis:: 19.907406h
Y axis:: 20.902779h
Y axis:: 21.89815h
Y axis:: 22.89352h
Y axis:: 23.888891h
如果我们将最大值更改为 setAxisMaximum (60000),事情就会变得非常混乱:
日志猫:
Y axis:: 0.0h
Y axis:: 0.6944444h
Y axis:: 1.3888888h
Y axis:: 2.0833333h
Y axis:: 2.7777777h
Y axis:: 3.4722223h
Y axis:: 4.1666665h
Y axis:: 4.861111h
Y axis:: 5.5555553h
Y axis:: 6.25h
Y axis:: 6.9444447h
Y axis:: 7.638889h
Y axis:: 8.333333h
Y axis:: 9.027778h
Y axis:: 9.722222h
Y axis:: 10.416667h
Y axis:: 11.111111h
Y axis:: 11.805555h
Y axis:: 12.5h
Y axis:: 13.194445h
Y axis:: 13.888889h
Y axis:: 14.583333h
Y axis:: 15.277778h
Y axis:: 15.972222h
Y axis:: 16.666666h