可能没说明白,具体就是介样子的:
具体怎么做呢,(其实很简单)用到的插件还是强大的MPchart,还有之前的写道的BarChart图形,长介样子
要做成第一张图的这个样子首先要准备一组有正有负的数组,相比大家有很多方法去写,我的做法是这样的:
生成一个随机的正负的数组:(这里看着好看我就把随机数用了三次,出现了三个竖条)
private BarData generate1Data(int cnt) {
ArrayList<BarEntry> entries = new ArrayList<BarEntry>();
for (int i = 0; i < 6; i++) {
entries.add(new BarEntry((int) (Math.random() * -30)+10, i));
}
BarDataSet d0 = new BarDataSet(entries, "流量影响度");
BarDataSet d1 = new BarDataSet(entries, "收入影响度");
BarDataSet d2 = new BarDataSet(entries, "量收比差");
d0.setColor(Color.rgb(255, 51, 0));
d1.setColor(Color.rgb(247, 150, 70));
d2.setColor(Color.rgb(155, 187, 89));
ArrayList<BarDataSet> sets = new ArrayList<>();
sets.add(d0);
sets.add(d1);
sets.add(d2);
BarData cd = new BarData(getMonths(), sets);
cd.setValueFormatter(new MyValueFormatter());
return cd;
}
然后绑定一下:
private void setData(){
ArrayList<BarData> mlist = new ArrayList<>();
for (int i = 0; i < 6; i++) {
mChild2list.add(generateData(i + 1));
}
}
准备数据的工作做完就是一些基本的设置了,然后通过barchart控件得到BarChart的Y轴
YAxis yAxis = mBarChart.getAxisLeft();
yAxis.setStartAtZero(false);//就是这句话就OK了
//不设置默认是true,设置完成后只要有负数的数据,这时候条形图就可以向下跑了,挺强大的!