2016-08-26 1 views
0

私はMPAndroidChartを使用しています。私は5:float[] sizesという配列を持っており、動的に値0-1を取得します。MPAndroidChart BubbleChart:単一エントリデータセットがバブルサイズを無視します

それぞれ異なる色の0~5の泡(サイズが<の場合は描画しません)を描画する必要があります。エントリレベルではなくデータセットレベルでのみ色を指定できるので、私は単一エントリのデータセットを使用する必要があります。

以下は私のコードです。問題は、彼らがサイズ(0.9f、0.8f、0.7f ...)で飛んだサイズを無視して、すべてサイズ1であることです。

この問題を解決するにはどうすればよいですか?

private void initChart(){ 
    mChart = (BubbleChart) findViewById(R.id.chart); 
    //mChart.setDescription(""); 
    mChart.setDrawGridBackground(false); 
    mChart.setTouchEnabled(true); 
    mChart.setDragEnabled(true); 
    mChart.setScaleEnabled(true); 
    mChart.setMaxVisibleValueCount(5); 
    mChart.setPinchZoom(true); 
    mChart.getXAxis().setEnabled(false); 
    mChart.getAxisLeft().setEnabled(false); 
    mChart.getAxisRight().setEnabled(false); 
    mChart.setDescription(""); 
    mChart.getXAxis().setAxisMinValue(-0.5f); 
    mChart.getXAxis().setAxisMaxValue(5.5f); 
} 

private void updateChart(){ 
    ArrayList<IBubbleDataSet> dataSets = new ArrayList<IBubbleDataSet>(); 
    for(int i = 0, pos = 0; i < 5; ++i) { 
     if(sizes[i] < 0.5f) 
      continue; 

     BubbleEntry entry = new BubbleEntry(pos++, 0, sizes[i]); //!!These sizes e.g. 0.9f, 0.7f ... are disregarded 
     ArrayList<BubbleEntry> vals = new ArrayList<>(); 
     vals.add(entry); 
     BubbleDataSet set = new BubbleDataSet(vals, ""); 
     set.setColor(ColorTemplate.COLORFUL_COLORS[i], 130); 
     set.setDrawValues(false); 
     dataSets.add(set); 
    } 

    BubbleData data = new BubbleData(dataSets); 
    data.setDrawValues(false); 
    data.setHighlightCircleWidth(1.5f); 
    mChart.setData(data); 
    mChart.invalidate(); 
} 

答えて

2

解決済み。新しいBubbleDataSetの後に次の行を追加してください:

set.setNormalizeSizeEnabled(false); 
関連する問題