这是我希望通过在0-100%范围内自动调整值来实现的目标
当前的Stackbar
超过100%范围的Stackbars和值未调整
leftAxis.setAxisMinimum(0f);
leftAxis.setAxisMaximum(100f);
这两个属性允许我在Y轴上设置范围,但它超过100%的阈值
mChart.getDescription().setEnabled(false);
mChart.setMaxVisibleValueCount(40);
mChart.setPinchZoom(false);
mChart.setDrawGridBackground(false);
mChart.setDrawBarShadow(false);
mChart.setDrawValueAboveBar(false);
mChart.setHighlightFullBarEnabled(false);
mChart.setDoubleTapToZoomEnabled(false);
mChart.getAxisRight().setEnabled(false);
XAxis xAxis = mChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setTypeface(mTfLight);
xAxis.setDrawGridLines(false);
xAxis.setGranularity(1f); // only intervals of 1 day
xAxis.setLabelCount(13);
// xAxis.setValueFormatter(xAxisFormatter);
IAxisValueFormatter custom = new MyAxisValueFormatter();
YAxis leftAxis = mChart.getAxisLeft();
leftAxis.setTypeface(mTfLight);
leftAxis.setLabelCount(2, false);
leftAxis.setValueFormatter(custom);
leftAxis.setPosition(YAxis.YAxisLabelPosition.OUTSIDE_CHART);
leftAxis.setSpaceTop(15f);
leftAxis.setAxisMinimum(0f); // this replaces setStartAtZero(true)
leftAxis.setAxisMaximum(100f);
mChart.getAxisRight().setEnabled(false);
其余代码
答案 0 :(得分:0)
我有一个解决方法
float rand1 = (float) (Math.random() * mult) + mult / 3;
float rand2 = (float) (Math.random() * mult) + mult / 3;
float rand3 = (float) (Math.random() * mult) + mult / 3;
float AddAllRand = (rand1 + rand2 + rand3);
float val1 = (100 * rand1) / AddAllRand;
float val2 = (100 * rand3) / AddAllRand;
float val3 = (100 * rand2) / AddAllRand;
yVals1.add(new BarEntry(i, new float[]{val1, val2, val3}, null));