如何在 MPAndroidChart 中使用 setLabelCount(...)?

How to use setLabelCount(...) in MPAndroidChart?

我正在使用 MPAndroidChart library

我使用了 barChart.getAxisLeft().setLabelCount(5);,它 returns 标记为 0.00, 20.00, 40.00, 60.00,但我想要 0.00, 25.00, 50.00, 75.00, 100.00

我也想显示100。有没有可能?

更新

我添加了以下几行,

barChart.getAxisLeft().setAxisMaxValue(100);
barChart.getAxisLeft().setAxisMinValue(0);
barChart.getAxisLeft().setLabelCount(5);

现在输出是

0.0, 20.0, 40.0, 60.0, 80.0, 100.0

所以我改成如下,

barChart.getAxisLeft().setAxisMaxValue(100);
barChart.getAxisLeft().setAxisMinValue(0);
barChart.getAxisLeft().setLabelCount(4);

现在输出是

0.0, 30.0, 60.0, 90.0

但我需要以下输出。

0.0, 25.0, 50.0, 75.0, 100.0

也许您可以通过 ValueFormatter 设置自定义 y 轴值。 如:

public class CustomValueFormatter implements ValueFormatter {

    public CustomValueFormatter() {
    }

    @Override
    public String getFormattedValue(float value) {
        return (value/20)*25 + " "; // transfer the number to meet your want.
    }
}

看看YAxis documentation。您会注意到一个名为 setAxisMaxValue(...).

的方法
  • 将最大值设置为 100
  • 将最小值设置为 0
  • 将标签计数设置为 5

你会得到你想要的。

有关更多自定义格式,请查看 ValueFormatter

最新版本的方法为public void setLabelCount(int count, boolean force)

例如:

barChart.getAxisLeft().setLabelCount(5,true);

这将给出准确的输出。

感谢@Philipp Jahoda 的修复