如何使用星期几作为 MPAndroidChart 的右轴标签?
How to use days of week as right axis labels with MPAndroidChart?
当我使用下面的代码时,只有第一个值更改为“Mo”,但其余值是相同的。如何编辑我的代码以使其工作?
mChart.getAxisRight().setValueFormatter(new MyValueFormatter());
class MyValueFormatter : ValueFormatter() {
private val days = arrayOf("Mo", "Tu", "Wed", "Th", "Fr", "Sa", "Su")
override fun getAxisLabel(value: Float, axis: AxisBase?): String {
return days.getOrNull(value.toInt()) ?: value.toString()
}
}
这里的主要问题是您的值与天数数组索引不匹配。第一个与 0 索引匹配,因此它显示但其他值是 20、40、60 ... OutOfArrayIndexBounds。所以要解决这个问题你必须创建一个映射而不是数组。我在这里解决了你的问题:
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()
}
}
当我使用下面的代码时,只有第一个值更改为“Mo”,但其余值是相同的。如何编辑我的代码以使其工作?
mChart.getAxisRight().setValueFormatter(new MyValueFormatter());
class MyValueFormatter : ValueFormatter() {
private val days = arrayOf("Mo", "Tu", "Wed", "Th", "Fr", "Sa", "Su")
override fun getAxisLabel(value: Float, axis: AxisBase?): String {
return days.getOrNull(value.toInt()) ?: value.toString()
}
}
这里的主要问题是您的值与天数数组索引不匹配。第一个与 0 索引匹配,因此它显示但其他值是 20、40、60 ... OutOfArrayIndexBounds。所以要解决这个问题你必须创建一个映射而不是数组。我在这里解决了你的问题:
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()
}
}