首页 > 代码库 > 用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