首页 > 代码库 > 用XCL-Charts定制多柱形堆积图

用XCL-Charts定制多柱形堆积图

    有网友发了张图,问我实现的方法。 与一般的柱形图不一样,这张图很特别,相信他要找到现成的,对得上号的图表将不是件易事。

通常图表库实现的不是通常意义上的柱形图,就是单纯的堆积图,很少有这种混在一起展现的情况出现。没得法,要定制才能实现的了。

      网友的原图(应当没侵权吧)            

                

     利用XCL-Charts实现的效果图:

             

                   网友的这张表面看起来,是同一个标签,两个堆积柱形并排放在一起,但依我的经验,要原汁原味让图表库提供这种图是很难的,

参数及数据位置计算很难处理。只能利用现有图表,采用混合方式实现。仔细观察了下,发现实际上只要将两个柱形图并在一起,在柱形高

度上做点手脚就能达到这个效果了。

        即,先画高一点那一些柱形图,再绘数据低一层的柱形图。 当然如果数据是变化的,现在高的到时有可能变低,就不能采用这种方法了,

但这张图暂不用考虑这个问题。

       定制程序的部份代码如下:         

	private String TAG = "MultiBarchart201View";	private BarChart chart = new BarChart();	private BarChart chart2 = new BarChart();		//标签轴	private List<String> chartLabels = new LinkedList<String>();	private List<BarData> chartData = http://www.mamicode.com/new LinkedList();>


     至此,图就绘制出来了。 代码不长,相信基本能看懂。

     特别要说一下代码中的绘制轴点。 在原图中,轴的两端和交叉处都有一个白点。XCL-Charts默认是没有这个功能,但这三个点的位置,

在XCL-Charts中都能取得出来,所以直接在render()中,直接加上三个绘制制circle的代码就行了。图例和轴标题风格有点不同,但这已不是什么大问题了。如果

还要求一样,可从XCL-Charts中依相关函数得到位置后,自定义一个图例和轴标题也不是难事。

      发现现在有个性的图太多了,各式各样,好多都没见过,很难考虑得到这些情况,所以图表库的灵活性与定制化越发重要,但我发现很少有人认真去看图表库,

都喜欢瞄瞄有没原样的,没有继续到处找。图表真的很特别时,等着哭吧。 哈哈。

    这个例子已收录在XCL-Charts图表库的demo中,有兴趣的可以去看看。

 

 MAIL: xcl_168@aliyun.com

 BLOG: http://blog.csdn.net/xcl168