MPAndroidChart BubbleChart:单个条目数据集忽略气泡大小

时间:2016-08-26 19:23:50

标签: android mpandroidchart

我正在使用MPAndroidChart。我有一个5的数组:float[] sizes,它将动态获取范围为0-1的值。

我需要绘制0-5个气泡(如果尺寸<0.5则不会画出),每个气泡都有不同的颜色。由于我们只能在数据集级别而不是入门级别指定颜色,因此我必须使用单项数据集。

以下是我的代码。问题是,它们都是1号,无论它们在飞行中的大小(0.9f,0.8f,0.7f ......)。

如何解决这个问题?

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();
}

1 个答案:

答案 0 :(得分:3)

解决。在新的BubbleDataSet之后添加以下行:

set.setNormalizeSizeEnabled(false);