MPAndroidChart:与数据点对齐的 x 轴标签

时间:2021-01-28 11:50:53

标签: android mpandroidchart

我正在使用 MPAndroidChart 库创建带有动态数据的折线图。在我的 y 轴上显示评分点,在 x 轴上显示相关日期。 Screenshot 显示当前折线图(但 x 轴错误)。我想根据数据点对齐 x 轴值。

我做了什么:

因此,我添加了具有线性上升索引 (i=0, i=1,...) 的 Entry 作为 x 值,然后我想使用 ValueFormatter 将值与正确的日期交换。< /p>

var i = 0
while (i < sortedGoalEvaluations.size) {
  entriesSatisfaction.add(
     Entry(
        i.toFloat(),
        sortedGoalEvaluations[i].safeSatisfactionValue.toFloat()
     )
  )
  i++
}

val satisfactionSet =
   LineDataSet(
      entriesSatisfaction,
      getString(R.string.satisfaction)
   )
dataSets.add(satisfactionSet)
xAxis.valueFormatter=object :ValueFormatter(){
  override fun getFormattedValue(value: Float): String {
    println(value)
    return convertMillisToStringDate(sortedGoalEvaluations[value.toInt()].evaluationDate,"dd.MM.yyyy")!!
  }
}

这应该很简单,但我的问题是我得到了一个 IndexOutOfBoundExeption。我可以定位问题的来源,但我真的不知道如何解决。

ValueFormatter 获取条目列表 mEntries,它包含 5 个值(请参阅 Screenshot)。正确的数据应该是这样的:

x, y
0, 3
1, 9
2, 3
3, 6
4, 10
5, 5
6, 4
7, 2
8, 6

ValueFormatter 尝试使用例如找到一个值23.33333 而不是例如1 在这一行:

return convertMillisToStringDate(sortedGoalEvaluations[***value.toInt()***].evaluationDate,"dd.MM.yyyy")!!

这显然是不可能的。

有人遇到过类似的问题和解决方案吗?我将不胜感激。

0 个答案:

没有答案
相关问题