【Kotlin/Android】MPAndroidChartでラベルをカスタマイズする方法!IAxisValueFormatter

この記事からわかること
- Android Studio/KotlinでMPAndroidChartを使用したグラフの実装方法
- ラベルの文言をカスタマイズする方法
- ラベルのデザインやサイズ、カラー、フォントの変更方法
- AxisValueFormatterの使い方
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
MPAndroidChartでグラフのX軸とY軸に表示されるラベルのカスタマイズ方法をまとめていきます。

グラフのX軸のカスタマイズ
X軸(縦側)に配置されるラベルをカスタマイズするにはxAxis
からXAxis
型を参照して設定していきます。
グラフのY軸のカスタマイズ
Y軸(横側)に配置されるラベルは右側と左側があり、それぞれカスタマイズするにはaxisLeft
とaxisRight
からYAxis
型を参照して設定していきます。プロパティやメソッドは同じなので右側を操作したい場合はaxisRight
に変更するだけです。
ラベルの値を自由に変更するには?
グラフのX軸とY軸に配置されるラベルはグラフデータに基づいて自動的に表示されます。しかし例えば横軸を時間などにしたい場合など、任意の値に変更したい場合に対応できるようにMPAndroidChartではValueFormatter
クラスが用意されています。
使用方法は簡単でValueFormatter
オブジェクトを生成しvalueFormatter
プロパティにセットするだけです。ValueFormatter
クラスではgetFormattedValue
メソッドの実装が必要で、この返り値がラベルに表示される文字列になります。

またMPAndroidChart
はiOSのDGCharts
と同じ開発者であり、基本的な操作やAPIなども比較的同じように実装されているのでラベルの実装も似たような振る舞いになっています。
右下のDescription Labelを非表示にする
デフォルトでグラフの右下にDescription Label
と表示されいますが、これを非表示にするにはdescription
を操作します。
最小値と最大値のみにラベルを付与する
グラフのラベルの最小値と最大値のみにラベルを表示したい場合はgetFormattedValue
内でlineChart
のxAxis
からグラフに適応されている最小値と最大値を取得できるのでその値と一致する時のみラベル文字列を返すようにすればOKです。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。