我试图将X轴上的值设置为月份,但是y值与我要设置的x值不对应。
L2
这是我得到的结果 result image
我认为我在xAxis.setValueFormatter部分上错了
在图表下方归档一条线答案 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()