private static String[] colors = new String[] { "#ff6600", "#339999",
"#ff6633", "#999900", "#ffff33", "#333366", "#993333", "#99cccc",
"#cc9900", "#999999", "#999933", "#006600", "#003366", "#99cc66" };
/*
* 构造饼图
*/
private Chart drawPieChar(List<BigDecimal> datas, String titletext,
List<SysCode> syscodes) {
Chart chart = new Chart();
Title title = new Title();
title.setText(titletext);
title.setStyle("{colour:#DDDDDD;font-size: 15px;}");
Pie pie = new Pie();
pie.setAlpha(0.6);
pie.setAnimate(true);
pie.setBorder(6.0);
pie.setTip("#label# $#val#<br>#percent#");
pie.setValues(contructValue(syscodes, datas));
pie.setColours(this.contructPieColor(datas));
Legend legend = new Legend();
legend.setBg_colour("#fefefe");
legend.setPosition("right");
chart.setLegend(legend);
chart.setPie(pie);
chart.setTitle(title);
chart.setBg_colour("#FFFFFF");
return chart;
}
private List<PieValue> contructValue(List<SysCode> syscodes,
List<BigDecimal> datas) {
BigDecimal sum = new BigDecimal(0);
BigDecimal percnet = new BigDecimal(0);
for (BigDecimal s : datas) {
sum = sum.add(s);
}
DecimalFormat format = new DecimalFormat("##.##%");
List<PieValue> list = new ArrayList<PieValue>();
for (int i = 0; i < syscodes.size(); i++) {
PieValue pieValue = new PieValue();
String label = syscodes.get(i).getLocaleName();
/*
* if(label!=null){ if(label.length()>13){ label =
* label.substring(0, 13); } }
*/
if (sum.compareTo(new BigDecimal(0))!=0) {
percnet = datas.get(i).divide(sum, 4,
BigDecimal.ROUND_HALF_UP);
}
pieValue.setText(label + "(" + format.format(percnet.doubleValue())
+ ")");
// pieValue.setLabel(label);
// pieValue.setTip("#percent#");
pieValue.setValue(datas.get(i));
list.add(pieValue);
}
return list;
}
/*
* 颜色匹配
*/
private String[] contructPieColor(List<BigDecimal> datas) {
List<String> piecolors = new ArrayList<String>();
int j = 0;
for (int i = 0; i < datas.size(); i++) {
j = i;
if (j > colors.length) {
j = 0;
}
piecolors.add(colors[i]);
}
String[] colors = {};
colors = piecolors.toArray(colors);
return colors;
}
分享到:
相关推荐
在本场景中,我们关注的是"Maven代码生成"插件,特别是"MyBatis Generator"。 MyBatis Generator(MBG)是一个强大的工具,用于自动生成MyBatis的SQL映射文件,DAO接口和实现,以及实体类。通过这个插件,开发者...
本文将深入探讨`maven`与`代码混淆`的相关知识点,帮助开发者理解如何在Maven项目中实现代码混淆。 首先,我们要知道什么是代码混淆。代码混淆是将源代码中的类名、方法名、变量名等替换为无意义的简短名称,以防止...
maven教程(含代码)maven教程(含代码)maven教程(含代码)maven教程(含代码)maven教程(含代码)maven教程(含代码)maven教程(含代码)maven教程(含代码)maven教程(含代码)maven教程(含代码)maven教程...
一个统计代码行的maven插件(会统计配置的后缀类型,统计代码行数,并统计.java文件的 代码行数 注释行数 空白行数 .. 输出结果如) [INFO] \src\main\java总行数 : 6511 lines of code in 63 files [INFO] \src\test\...
** Maven实战:所有源代码详解 ** Maven是一款强大的项目管理和构建工具,广泛应用于Java开发领域。它通过一套约定优于配置的原则,简化了项目的构建、依赖管理以及文档生成等工作。本篇文章将深入探讨"Maven实战...
在实际开发中,Maven的命令行工具提供了丰富的选项,例如`mvn clean`用于清理项目生成的目标文件,`mvn compile`用于编译源代码,`mvn test`执行单元测试,而`mvn install`则将项目打包并安装到本地仓库。...
【标题】"Maven代码工具IDE插件"指的是在集成开发环境(IDE)中用于支持Maven项目的插件。Maven是一种广泛使用的项目管理和综合工具,它帮助开发者管理依赖、构建项目、执行测试以及生成文档等。对于Eclipse这样的...
同时,如果使用的是Maven或Gradle,需要在对应的构建文件中添加FlashChart的依赖。 2. **创建图表数据**:在Hibernate的帮助下,从数据库中检索需要展示的数据。例如,如果你要展示销售报告,你需要从数据库查询...
本文将深入探讨如何在Maven管理的Java Web项目中集成ProGuard工具来实现代码混淆功能,以及在过程中可能遇到的问题及解决方案。 首先,让我们了解什么是ProGuard。ProGuard是一个开源的Java字节码混淆器、优化器和...
【尚硅谷Maven课程笔记代码资源】是一份全面学习Maven的资料集合,它涵盖了从基础到高级的各种知识点,旨在帮助开发者深入理解并熟练运用Maven进行自动化构建。该资源包含课件、源码和相关的笔记,使得学习过程更加...
【自定义maven工程 mydepot】是一个专为Java开发者设计的代码框架,它提供了一种规范化的项目结构,便于代码管理和团队协作。Maven是一个强大的项目管理工具,它可以帮助开发者自动化构建、依赖管理和项目信息管理。...
基于SpringBoot+Maven多模块工程利用proguard组件实现代码混淆的代码demo,代码清晰完整,导入idea或eclipse即可运行。 使用 proguard 混淆代码只能增加阅读和理解的难度, 并不能百分百保证代码安全。常用的应用...
《Maven权威指南开发实例代码》是一本深入探讨Maven构建工具的实践性书籍,它提供了丰富的示例代码,帮助开发者全面理解并掌握Maven的使用。Maven是Apache软件基金会开发的一款项目管理和综合工具,它主要负责管理...
【标题】:“maven源代码.zip”是一个包含与Maven相关的源代码和配置文件的压缩包,主要用于理解和学习Maven的内部工作原理以及如何在实际项目中应用。 【描述】:“maven源代码.zipmaven源代码.zipmaven源代码.zip...
Java FreeMarker+Maven 实现代码自动生成是一个高效且灵活的方法,可以帮助开发者节省大量手动编写重复性代码的时间。FreeMarker 是一个强大的模板引擎,而Maven作为项目构建工具,能够帮助我们管理和组织项目的构建...
【标题】"poi的maven项目代码"是一个关于Apache POI库的 Maven 项目示例,主要用于演示如何利用POI库来操作Excel文件。Apache POI 是一个流行的开源Java API,它允许开发者创建、修改和显示Microsoft Office格式的...
本源码为基于Mybatis-Plus的Maven代码生成插件设计,共包含25个文件,其中java文件14个,vm文件6个,gitignore文件1个,project文件1个,LICENSE文件1个,md文件1个,xml文件1个。该项目是一个Mybatis-Plus Maven...
在Java开发过程中,为了保护代码安全和防止反编译,我们常常需要对代码进行混淆处理。本教程将详细介绍如何在IntelliJ IDEA(IDEA)中利用Maven进行混淆打包的步骤,确保整个过程顺利且有效。 首先,我们需要了解...
Storm 编程实践(安装 Maven-使用 Maven 编译运行代码-mvn 打包) 本文档介绍了 Storm 编程实践的实践报告,涵盖了安装 Maven、使用 Maven 编译运行代码和 mvn 打包等内容。报告中还包括了实验环境的配置、实验内容...