设为首页 加入收藏

TOP

用XCL-Charts定制多柱形堆积图(二)
2015-07-20 18:08:03 来源: 作者: 【 】 浏览:59
Tags:XCL-Charts 定制 堆积
); //让柱子间没空白 chart2.getBar().setBarInnerMargin(0d); //轴颜色 chart2.getDataAxis().getAxisPaint().setColor(axisColor); chart2.getCategoryAxis().getAxisPaint().setColor(axisColor); chart2.getDataAxis().getTickMarksPaint().setColor(axisColor); chart2.getCategoryAxis().getTickMarksPaint().setColor(axisColor); chart2.getDataAxis().getTickLabelPaint().setColor(axisColor); chart2.getCategoryAxis().getTickLabelPaint().setColor(axisColor); chart2.getAxisTitle().getLeftAxisTitlePaint().setColor(axisColor); chart2.getAxisTitle().getLowerAxisTitlePaint().setColor(axisColor); //隐藏图例 chart2.getPlotLegend().hideLegend(); } catch (Exception e) { // TODO Auto-generated catch block Log.e(TAG, e.toString()); } } private void chartDataSet() { //标签对应的柱形数据集 List dataSeriesA= new LinkedList (); dataSeriesA.add(2400d); dataSeriesA.add(2400d); dataSeriesA.add(2400d); dataSeriesA.add(2400d); dataSeriesA.add(2400d); BarData BarDataA = new BarData("流动资产",dataSeriesA,(int)Color.rgb(58, 191, 247)); List dataSeriesB= new LinkedList (); dataSeriesB.add(2000d); dataSeriesB.add(2000d); dataSeriesB.add(2000d); dataSeriesB.add(2000d); dataSeriesB.add(2000d); BarData BarDataB = new BarData("非流动资产",dataSeriesB,(int)Color.rgb(20, 181, 251)); chartData.add(BarDataA); chartData.add(BarDataB); List dataSeriesAA= new LinkedList (); dataSeriesAA.add(0d); BarData BarDataAA = new BarData("负债",dataSeriesAA,(int)Color.rgb(38, 137, 176)); List dataSeriesBB= new LinkedList (); dataSeriesBB.add(0d); BarData BarDataBB = new BarData("所有者权益",dataSeriesBB,(int)Color.rgb(13, 116, 161)); chartData.add(BarDataAA); chartData.add(BarDataBB); } private void chartDataSet2() { //标签对应的柱形数据集 List dataSeriesA= new LinkedList (); dataSeriesA.add(1600d); dataSeriesA.add(1700d); dataSeriesA.add(1800d); dataSeriesA.add(1800d); dataSeriesA.add(1500d); BarData BarDataA = new BarData("负债",dataSeriesA,(int)Color.rgb(38, 137, 176)); List dataSeriesB= new LinkedList (); dataSeriesB.add(1500d); dataSeriesB.add(1300d); dataSeriesB.add(1400d); dataSeriesB.add(1200d); dataSeriesB.add(1600d); BarData BarDataB = new BarData("所有者权益",dataSeriesB,(int)Color.rgb(13, 116, 161)); chartData2.add(BarDataA); chartData2.add(BarDataB); } private void chartLabels() { chartLabels.add("20%"); chartLabels.add("40%"); chartLabels.add("60%"); chartLabels.add("80%"); chartLabels.add("100%"); } @Override public void render(Canvas canvas) { try{ chart.render(canvas); chart2.render(canvas); //绘制轴点 float radius = 10f; Paint paint = new Paint(); paint.setAntiAlias(true); paint.setColor(this.axisColor); canvas.drawCircle(chart2.getPlotArea().getLeft(), chart2.getPlotArea().getBottom(), radius, paint); canvas.drawCircle(chart2.getPlotArea().getRight(), chart2.getPlotArea().getBottom(), radius, paint); canvas.drawCircle(chart2.getPlotArea().getLeft(), chart2.getPlotArea().getTop(), radius, paint); } catch (Exception e){ Log.e(TAG, e.toString()); } }


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

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

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

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

发现现在有个性的图太多了,各式各样,好多都没见过,很难考虑得到这些

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇[ACM] POJ 1218 THE DRUNK JAILER.. 下一篇[ACM] POJ 1328 Radar Installati..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: