web-dev-qa-db-ja.com

MPAndroidChart-棒グラフにラベルを追加する

私のアプリケーションでは、棒グラフの各棒にラベルを付ける必要があります。 MPAndroidChartでこれを行う方法はありますか?プロジェクトwiki/javadocsでこれを行う方法が見つかりませんでした。

これを行う方法がない場合、私にできる別のソフトウェアはありますか?

enter image description here

13
Matt

更新された回答(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);
41
TR4Android

この行行くコードを追加して、上記の列ラベルを設定できます

xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
7
Muneerah Rashed