如何使用MPAndroidChart将周中的天数用作右轴标签?
当我使用下面的代码时,只有第一个值被更改为Mo,但其余的值是相同的。如何编辑代码使其正常工作如何使用MPAndroidChart将周中的天数用作右轴标签?,android,kotlin,mpandroidchart,Android,Kotlin,Mpandroidchart,当我使用下面的代码时,只有第一个值被更改为Mo,但其余的值是相同的。如何编辑代码使其正常工作 mChart.getAxisRight().setValueFormatter(new MyValueFormatter()); 这里的主要问题是您的值与days数组索引不匹配。第一个与0索引匹配,因此显示,但其他值为20、40、60。。。这超出了范围。所以要解决这个问题,你必须创建一个映射而不是数组。我在这里解决了你的问题: class MyValueFormatter : ValueFor
mChart.getAxisRight().setValueFormatter(new MyValueFormatter());
这里的主要问题是您的值与days数组索引不匹配。第一个与0索引匹配,因此显示,但其他值为20、40、60。。。这超出了范围。所以要解决这个问题,你必须创建一个映射而不是数组。我在这里解决了你的问题:
class MyValueFormatter : ValueFormatter() {
private val days = mapOf(0.0f to "Mon", 20.0f to "Tu", 40.0f to "Wed", 60.0f to "Th", 80.0f to "Fr", 100.0f to "Sa", 120.0f to "Su")
override fun getAxisLabel(value: Float, axis: AxisBase?): String {
return if (days.containsKey(value)) days[value] else value.toString()
}
}
您应该使用XAxis而不是AxisRight。它会对你更有用。因为左/右轴用于值而不是文本。
class MyValueFormatter : ValueFormatter() {
private val days = mapOf(0.0f to "Mon", 20.0f to "Tu", 40.0f to "Wed", 60.0f to "Th", 80.0f to "Fr", 100.0f to "Sa", 120.0f to "Su")
override fun getAxisLabel(value: Float, axis: AxisBase?): String {
return if (days.containsKey(value)) days[value] else value.toString()
}
}