我正在使用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();
}
答案 0 :(得分:3)
解决。在新的BubbleDataSet之后添加以下行:
set.setNormalizeSizeEnabled(false);