私のアプリケーションでは、棒グラフの各棒にラベルを付ける必要があります。 MPAndroidChartでこれを行う方法はありますか?プロジェクトwiki/javadocsでこれを行う方法が見つかりませんでした。
これを行う方法がない場合、私にできる別のソフトウェアはありますか?
更新された回答(MPAndroidChart v3.0.1)
このような一般的に使用される機能であるため、ライブラリのv3.0.1では、この目的のために IndexAxisValueFormatter
クラスが追加されたため、コードは1行になりました。
mBarChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels));
以下の元の回答のProTipが引き続き適用されます。
オリジナルの回答(MPAndroidChart v3.0.0)
ライブラリのv3.0.0では、バーにラベルを直接設定する方法はありませんが、ValueFormatter
インターフェイスを使用するかなり適切な回避策があります。
次のような新しいフォーマッタを作成します。
public class LabelFormatter implements IAxisValueFormatter {
private final String[] mLabels;
public LabelFormatter(String[] labels) {
mLabels = labels;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
return mLabels[(int) value];
}
}
次に、このフォーマッターをx軸に設定します(既にString[]
ラベルを含む):
mBarChart.getXAxis().setValueFormatter(new LabelFormatter(labels));
ProTip:棒グラフにズームインするときに表示される余分なラベルを削除する場合は、粒度機能を使用できます。
XAxis xAxis = mBarChart.getXAxis();
xAxis.setGranularity(1f);
xAxis.setGranularityEnabled(true);
この行行くコードを追加して、上記の列ラベルを設定できます
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);