2017-01-24 11 views
3

タイトルのとおり、私はMPAndroidChartバージョン2.2.3が使用されているプロジェクトに取り組んでいます。このプロジェクトでは、現在、棒グラフが使用されています。MPAndroidChart v3.x.x:2.x.xのラベルからアップグレードされました

3.0.1にアップグレードしています。アップグレード後、以下のいくつかのことはもう動作しません:

1.

mBarChart.setDescription(""); 

2.

xAxis.setSpaceBetweenLabels(1); 

3.

BarData barData = new BarData(ArrayList<String>, ArrayList<IBarDataSet>); 

私は周りを見回したが、そこのように思えますこれらの問題は、リリースノートでも説明されていません。

答えて

7

説明を設定する正しい方法は、今あるthis answer hereを1として最初の質問

mBarChart.setDescription();はもう

を動作しません:

mChart.getDescription().setText("Description of my chart); 

3番目の質問

BarData barData = new BarData(ArrayList<String>, ArrayList<IBarDataSet>);はもう動作しません。

ラベルを追加する方法は以前とは異なります。 MPAndroidChart 2.x.xでは、BarDataのコンストラクタのパラメータ012BとしてxIndexラベルを渡します。 MPAndroidChart 3.xxの行う方法に

BarData (com.github.mikephil.charting.interfaces.datasets.IBarDataSet...) in BarData cannot be applied to (java.lang.String[],java.util.ArrayList<com.github.mikephil.charting.interfaces.datasets.IBarDataSet>) 

これは、代わりにTruition tutorial for MPAndroidChart here

のような多くの人気が、時代遅れのチュートリアルに適用されます:あなたは3.xxの中で、あなたはこのようなメッセージが表示されますことをしようとした場合これはIAxisValueFormatterを使用しています。このインターフェイスには、プログラムでラベルを生成するために実装する単一のメソッド​​があります。

例はMPAndroidChart3.xでBarChartコントロールにデータを追加するための正しい方法は、sample projectおよび要するにanswer here

です。xは(例のようにサンプルプロジェクトでは)次

ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>(); 
dataSets.add(set1); 
BarData data = new BarData(dataSets); 
mChart.setData(data); 
mChart.getXAxis().setValueFormatter(new MyCustomValueFormatter()); // your own class that implements IAxisValueFormatter 

注:あなたが好きそれを消費IndexAxisValueFormatter

便利なクラスを使用することができ、あなたのラベルのArrayList<String>を使用する必要がある場合この:

List<String> labels; 
//TODO: code to generate labels, then 
mChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels)); 

あなたが必要になります。

mChart.getXAxis().setGranularity(1); 
mChart.getXAxis().setGranularityEnabled(true); 

は、整数xIndicesのみがラベルを受け取るMPAndroidChart 2.x.xの動作を模倣します。あなたの2番目の質問については

、ラベルの機能は非常に細かく IAxisValueFormatterによって制御されているので、あなたはそれ以上 setSpaceBetweenLabels()を必要としません。

+0

こんにちはDavid、あなたの答えをありがとう。この場合、ArrayList はどこにありますか? YAxisで手動で設定する必要がありますか?どうしたらいいですか?ありがとう。 Btw、質問1と2に答えました。ありがとう。 –

+0

私はこれがサンプルプロジェクトのようだと思います: 'ArrayList dataSets = new ArrayList (); dataSets.add(set1); BarDataデータ=新しいBarData(データセット); ' –

+0

@ LongDao私は答えを –

関連する問題