У меня есть простая линейная диаграмма, где значения X соответствуют месяцам года. Проблема в том, что он не показывает мне соответствующие ярлыки. Я использую IAxisFormatter для замены номеров месяца текстом (1 = январь, 2 = февраль и т. Д.)
Но я хочу, чтобы это выглядело
Я поставил код того, как я настроил линейную диаграмму (Kotlin)
// GENERAL CONFIGURATION
lineChartEvolucionFragment.setPinchZoom(false)
lineChartEvolucionFragment.setTouchEnabled(false)
lineChartEvolucionFragment.description = null
lineChartEvolucionFragment.legend.isEnabled = false
lineChartEvolucionFragment.axisRight.isEnabled = false
lineChartEvolucionFragment.xAxis.position = XAxis.XAxisPosition.BOTTOM
lineChartEvolucionFragment.xAxis.setDrawGridLines(false)
lineChartEvolucionFragment.xAxis.valueFormatter = MonthFormatter()
lineChartEvolucionFragment.isDragEnabled = true
lineChartEvolucionFragment.axisLeft.setDrawGridLines(false)
lineChartEvolucionFragment.xAxis.setCenterAxisLabels(true)
lineChartEvolucionFragment.xAxis.labelRotationAngle = 315f
lineChartEvolucionFragment.xAxis.setDrawLabels(true)
// DATASET
val entries = mutableListOf<Entry>()
for (historia in getHistoryDummy()) {
val month = Funciones.formatTimestamp("MM", historia.fechaEnviado).toIntOrNull()
?: continue
entries.add(Entry(month.toFloat(), getDatoByType(historia)))
Log.d(TAG, "Mes: ${month.toFloat()}")
}
val dataset = LineDataSet(entries, "Evolución")
dataset.lineWidth = 2f
dataset.color = ContextCompat.getColor(context!!, R.color.colorAccent)
dataset.setCircleColor(ContextCompat.getColor(context!!, R.color.colorPrimaryDark))
val lineData = LineData(dataset)
lineData.setValueFormatter(ValueFormatter())
lineData.setValueTextSize(12f)
lineChartEvolucionFragment.data = lineData
lineChartEvolucionFragment.axisLeft.addLimitLine(getLimitByType())
lineChartEvolucionFragment.setVisibleXRange(1f, 5f)
lineChartEvolucionFragment.animateX(500, Easing.EasingOption.EaseInSine)
//FORMATTER
class MonthFormatter : IAxisValueFormatter {
override fun getFormattedValue(value: Float, axis: AxisBase?): String = when (value) {
1f -> "Jan"
2f -> "Feb"
3f -> "Mar"
4f -> "Apr"
5f -> "May"
6f -> "Jun"
7f -> "Jul"
8f -> "Aug"
9f -> "Sept"
10f -> "Oct"
11f -> "Nov"
12f -> "Dec"
else -> ""
}
}
Я использую версию 3.0.3