e-chart瀑布图数据生成函数

private static void getChartData(Double head ,List<Double> SHOW,Double end){
 //========================模拟数据初始化开始======================
 SHOW=new ArrayList<Double>();//中间各项费率显示
 head=10.00;//同期费率
 SHOW.add(10.00);
 SHOW.add(-30.00);
 SHOW.add(20.00);
 SHOW.add(10.00);
 SHOW.add(-10.00);
 SHOW.add(20.00);
 SHOW.add(10.00);
 SHOW.add(-50.00);
 SHOW.add(-10.00);
 SHOW.add(-10.00);
 SHOW.add(10.00);
 SHOW.add(20.00);
 SHOW.add(60.00);
 end=20.00;//当期费率
 //========================模拟数据初始化结束======================
 
 
 
 
 //===========这些集合按照索引进行处理数据,每一个指针指向一个字段,头尾代表同期年费率,中间指向各项类目费率
 List<Double> JC_Up = new ArrayList<Double>();//正向透明
 JC_Up.add(0.00);//正向透明
 List<Double> JC_Down= new ArrayList<Double>();//负向透明
 JC_Down.add(0.00);
 List<Double> QS_Up= new ArrayList<Double>();//正向起始head
 List<Double> QS_Down= new ArrayList<Double>();//负向起始head
 List<Double> END_Up= new ArrayList<Double>();//正向起始end
 List<Double> END_Down= new ArrayList<Double>();//负向起始end
 List<Double> JS_Up= new ArrayList<Double>();//正向减少 
 List<Double> JS_Down= new ArrayList<Double>();//负向减少
 List<Double> ZJ_Up= new ArrayList<Double>();//正向增加
 List<Double> ZJ_Down= new ArrayList<Double>();//负向增加
 //===========
 
 //===========首项数据初始化==================
 if (head>=0) {
 QS_Up.add(head);
 QS_Down.add(0.00);
 }else {
 QS_Down.add(head);
 QS_Up.add(0.00);
 }
 JS_Up.add(0.00);
 JS_Down.add(0.00);
 ZJ_Up.add(0.00);
 ZJ_Down.add(0.00);
 END_Up.add(0.00);
 END_Down.add(0.00);
//===========首项数据初始化==================
 
 
 //===========获得各项依次累积的基础数据(空白+各色柱状图高度)==========
 List<Double>  JC= new ArrayList<Double>();
 for (int i = 0; i < SHOW.size(); i++) {
if (i==0) {
JC.add(end);
}else {
JC.add(SHOW.get(i-1)+JC.get(i-1));
}
 }
//===========获得各项依次累积的基础数据(空白+各色柱状图高度)==========
 
 
 
 
//===========处理各项柱状图高度的数据 透明色,增加,减少三项================开始===========================
 for (int i = 0; i < JC.size(); i++) {
 Double current = JC.get(i);
//===========当前高度为正数,下次累积项目为正数==========开始
 if (current>=0&&SHOW.get(i)>=0) {
 ZJ_Up.add(Math.abs(SHOW.get(i)));
 JS_Up.add(0.00);
 JC_Up.add(current);
 JC_Down.add(0.00);
 ZJ_Down.add(0.00);
 JS_Down.add(0.00);

 }
//===========当前高度为正数,下次累积项目为正数==========结束
 
 
 
//===========当前高度为正数,下次累积项目为负数==========开始
 else if (current>=0&&SHOW.get(i)<0) {
 if (current+SHOW.get(i)>=0) {
 JS_Up.add(Math.abs(SHOW.get(i)));
 JS_Down.add(0.00);
 ZJ_Up.add(0.00);
 JC_Up.add(current+SHOW.get(i));
 JC_Down.add(0.00);
 ZJ_Down.add(0.00);
 
 }else {
 JS_Up.add(current);
 JS_Down.add(current+SHOW.get(i));
 ZJ_Up.add(0.00);
 JC_Up.add(0.00);
 JC_Down.add(0.00);
 ZJ_Down.add(0.00);
 
 }
}
//===========当前高度为正数,下次累积项目为负数==========结束
 
 
//===========当前高度为负数,下次累积项目为正数==========开始
else if (current<0&&SHOW.get(i)>=0) {
 if (current+SHOW.get(i)>=0) {
 JS_Up.add(0.00);
 ZJ_Up.add(current+SHOW.get(i));
 JC_Up.add(0.00);
 JC_Down.add(0.00);
 ZJ_Down.add(current);
 JS_Down.add(0.00);
 }else {
 JS_Up.add(0.00);
 ZJ_Up.add(0.00);
 JC_Up.add(0.00);
 JC_Down.add(current+SHOW.get(i));
 ZJ_Down.add(-SHOW.get(i));
 JS_Down.add(0.00);
 }
}
//===========当前高度为负数,下次累积项目为正数==========结束
 
 
//===========当前高度为负数,下次累积项目为负数==========开始
else if (current<0&&SHOW.get(i)<0) {
JC_Up.add(0.00);
 
ZJ_Up.add(0.00);
JC_Down.add(current);
JS_Up.add(0.00);
JS_Down.add(SHOW.get(i));
ZJ_Down.add(0.00);
}
//===========当前高度为负数,下次累积项目为负数==========结束

 
//===========填充控制开头结尾的数据的集合==========结束
 END_Up.add(0.00);
 END_Down.add(0.00);
 QS_Up.add(0.00);
 QS_Down.add(0.00);
//===========填充控制开头结尾的数据的集合==========结束
 
 
 
 
}
//===========处理各项柱状图高度的数据 透明色,增加,减少三项===============结束============================
 
 
 
 
 
 
//===========处理尾部指针数据==========
if (end>=0) {
 END_Up.add(end);
 END_Down.add(0.00);
 }else {
 END_Down.add(end);
 END_Up.add(0.00);
 }
JS_Up.add(0.00);
 JS_Down.add(0.00);
 ZJ_Up.add(0.00);
 ZJ_Down.add(0.00);
 QS_Up.add(0.00);
 QS_Down.add(0.00);
//===========处理尾部指针数据==========
 
 
 
 List<Double>newShow =new ArrayList<Double>();
 for (int j = 0; j < SHOW.size()+2; j++) {
Double filed=0.00;
if (j==0) {
filed=head;
}else if(j==SHOW.size()+1){
filed=end;
}else{
filed=SHOW.get(j-1);
}
newShow.add(filed);
}
 List<List<Double>>    list=new ArrayList<List<Double>>();
 List<String> sqls=new ArrayList<>();
 list.add(newShow);
 list.add(JC_Up);
 list.add(JC_Down);
 list.add(JS_Down);
 list.add(JS_Up);
 list.add(QS_Up);
 list.add(QS_Down);
 list.add(ZJ_Up);
 list.add(ZJ_Down);
//  
 
 
 
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值