charts框架 横向 纵向柱状图

来源:互联网 发布:湖畔网络 编辑:程序博客网 时间:2024/04/27 02:23

这里写图片描述
实现效果如下,除了基础的柱状图实现,主要增加了,x ,y 轴的自定义title,可以显示汉字而不是数值。最近一直做charts的集成,所以把心得给大家介绍一下。避免走弯路。由于网上IOS相关的demo比较少。所以比较难找的方法。应该对大家有很大的帮助,说一下实现的思路,大体如下
1.需要一个类,比如柱状图就是BarChartView,然后我们需要对这个类的数据进行操作,需要barchartData

BarChartData *data = [self generateBarChartData:yValues title:bar barColor:[UIColor orangeColor]];    barChart.data = data;

2.对barchartData进行操作需要,而又需要BarChartDataSet的赋值。所以最后操作都集中在BarChartDataSet

    BarChartDataSet *set = [[BarChartDataSet alloc] initWithValues:entries label:title];    set.drawValuesEnabled = YES;    set.drawIconsEnabled = NO;    set.colors = @[barColor];    NSMutableArray *dataSets = [[NSMutableArray alloc] init];    [dataSets addObject:set];    BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];

另外需要注意的是,不论横向还是纵向都是一个模板,同样的轴,正常的是纵向,横向只是纵向的翻转。也就是说横向的Y轴操作,其实就是对这个框架的x轴进行操作。
下面介绍一下,x轴和y轴赋值

  //y轴赋值    NSMutableArray *entries = [NSMutableArray array];    for (int i =0; i<yValues.count; i++) {        BarChartDataEntry *barEntry = [[BarChartDataEntry alloc] initWithX:i y:[yValues[i] doubleValue] icon:[UIImage imageNamed:@"icon"]];        [entries addObject:barEntry];    }

x轴的赋值也是比较难找的方法

   ChartXAxis *xAxis = barChart.xAxis;    xAxis.valueFormatter = [[ChartIndexAxisValueFormatter alloc] initWithValues:xValues];

具体的源代码和细节请参考本人github上的demo:
https://github.com/lee727n/Chart-Barview

另外,细心的可能会发现横向柱状图显示有问题,数字显示不出来。这是charts框架的一个bug。至今还未解决。但是有解决办法。具体参考微博:
http://blog.csdn.net/lee727n/article/details/78095965
微博中附带官方文档对于问题的说明

原创粉丝点击