3

この質問はここで作成されましたが、まだ回答がありません...

MPAndroidChartライブラリのStackedBarActivity の例を使用して 3 つのマージ バーを描画し、値を [1,2,3] に設定します... グラフはすべての数値の合計 1+2+3=6 で表示されます。以下の画像に示すように、値 2 オーバーレイ値 3 と値 1 オーバーレイ値 2 にするために、すべての値をマージする必要があります。

ここに画像の説明を入力

基本的に、StackedBarActivityアクティビティを使用したいのですが、すべてのバーを積み重ねるのではなく、代わりに 1 つを別のバーの後ろに置きたいと考えています。大きな値を小さな値で減算し、合計を 3 (1+1+1) にすることができることは視覚的にわかりますが、値 3 は値 1 を保持し、値 3 は保持しません。

このクラスを使用してこれを行う方法はありますか? これを行うためのより良いクラスはありますか?

4

2 に答える 2

1

私は答えが6か月遅れていることを知っていますが、それは有効な解決策だと思います:

List<String> xVals = getXVals(); //some function to get values
List<BarEntry> yVals = new ArrayList();
int[] barColors = new int[bars.size() * numberOfValues];
int index=0;
for (Bar bar : bars) {
    List<BarEntry> yValsForBar = new ArrayList();
    for (int i=0; i<numberOfValues; i++) {
        yValsForBar.add(new BarEntry(bar.value(i), i));
        barColors[i+index*numberOfValues] = bar.color();
    }
    yVals.addAll(yValsForBar);
    index++;
}
BarDataSet dataSet = new BarDataSet(yVals, "data set");
BarData data = new BarData(xVals);
data.addDataSet(dataSet);

ここでは、異なる色のバーが重なっている必要があります (注: もちろん、バーの値が次の値よりも大きい場合、一部のバーが表示されない場合があります。並べ替えたくない場合は、これにいくつかの変更を加える必要があります)。少なくとも私と一緒に働きます。

于 2016-05-10T13:03:52.127 に答える