标签:
最近的项目使用有个功能需要使用到堆叠柱形图,看了项目以前的代码实现没有想要的结果。所以自己就先到官网下载了 Demo,Demo里有个打包好的Jar包,直接运行看到效果,但是坑爹的是貌似没有对应的源码,所以只能根据class名称直接google了,所幸在github里找到对应的源码。
点我下载 访问密码 f62b
这是运行Demo找到想要实现的效果的大致图:
我最终想要实现的效果是这样的:
如果想要实现这个效果,可以使用
但是柱体的返回的值是10.1/50.1=20.2%
,40.1/50.1=79.8%
这不符合预期目标,所以就去看了一下源码,在StandardCategoryItemLabelGenerator
的父类AbstractCategoryItemLabelGenerator
中发现有createItemArray
这么一个方法:
可以发现柱体的标签值应该是由这个方法进行返回的,因此自己就对StandardCategoryItemLabelGenerator
进行了继承,并重写了这个方法。
在ExtendedStandardCategoryItemLabelGeneratory
中增加了isPercent
作为标签值是显示百分比还是仅仅格式化的判断参数,并重写了createItemArray
这个方法。
此时得到的效果如图:
然而,柱体的总值还是没有格式化。再看了一下ExtendedStackedBarRenderer
这个类的代码,找到了totalFormat
这个属性,将其值赋为new DecimalFormat("#0.0%")
。测试:
基本是想要的最终结果,下面是测试代码
ExtendedStackedBarRenderer
ExtendedStandardCategoryItemLabelGeneratory
StackedBarChartDemo3
标签:
原文地址:http://www.cnblogs.com/leongfeng/p/5259897.html