MPAndroidChart在X轴上设置月份值并在图形下绘制线

时间:2018-12-04 10:01:25

标签: java android mpandroidchart

我试图将X轴上的值设置为月份,但是y值与我要设置的x值不对应。

L2

这是我得到的结果 result image

我认为我在xAxis.setValueFormatter部分上错了

我也想像这样image of line below graph

在图表下方归档一条线

2 个答案:

答案 0 :(得分:0)

对于与我有相同问题的任何人,我都可以通过更改我的方式来解决

xAxis.setValueFormatter(new IAxisValueFormatter() {
    @Override
    public String getFormattedValue(float value, AxisBase axis) {

        return xEntrys.get((int) value % xEntrys.size());
    }
});

对此

xAxis.setValueFormatter(new IAxisValueFormatter() {
        @Override
        public String getFormattedValue(float value, AxisBase axis) {
            return xData[(int) value]; // xVal is a string array
        }
    });

我认为这只是一个计算错误。

答案 1 :(得分:0)

这是我在kotlin中的实现,并且使用外部类,因为您可能最终会在多个地方使用此格式化程序,这会降低视图层的复杂性。

请记住,格式化程序界面发生了变化,现在您应该使用 getAxisLabel 而不是 getFormattedValue

class MonthValueFormatter : ValueFormatter() {

override fun getAxisLabel(value: Float, axis: AxisBase?): String {
    return when (value) {
        0.0f -> "January"
        1.0f -> "February"
        2.0f -> "Mars"
        3.0f -> "April"
        4.0f -> "May"
        5.0f -> "June"
        6.0f -> "July"
        7.0f -> "August"
        8.0f -> "September"
        9.0f -> "October"
        10.0f -> "November"
        11.0f -> "December"
        else -> throw IllegalArgumentException("$value is not a valid month")
    }
  }
}

然后在您的视图中仅对实例进行模拟:

xAxis.valueFormatter = MonthValueFormatter()