ios-linechart 1.3.2

ios-linechart 1.3.2

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

Marcel Ruegenberg 维护。




  • Marcel Ruegenberg

为喜欢简单的 iOS 开发者设计的交互式折线图。

你只需要一些折线图,而 Core Plot 让你感到难以使用!

fuuu

无需再寻找!ios-linechart 即将到来!

功能

  • 简单的 API。让你在找到 Core Plot 样本代码之前就能绘制第一个图表。
  • 交互性。允许用户查看单个数据点。
  • 支持 x 轴上的非均匀步长

安装

使用

基本的使用可以在仓库中包含的演示应用中看到。

首先,导入主头文件

    #import "LCLineChartView.h"

或者,你可以导入缩略头文件,它提供不带 LC 前缀的名称

    #import "LineChart.h"

每个图表行都包含在一个 LCLineChartData 对象中,该对象指定其在 x 轴上的数据范围(《xMin》/《xMax》),一个(颜色),一个(标题)(显示在图例中)以及一个 itemCount,数据点的数量

    LCLineChartData *d = [LCLineChartData new];
    d.xMin = 1;
    d.xMax = 31;
    d.title = @"The title for the legend";
    d.color = [UIColor redColor];
    d.itemCount = 10;

此外,每个 LCLineChartData 对象还有一个 getData 属性。这只是一个接受数据点编号作为参数的代码块,并返回包装单个数据点的 LCLineChartDataItem 对象

    NSMutableArray *vals = [NSMutableArray new];
    for(NSUInteger i = 0; i < d.itemCount; ++i) {
        [vals addObject:@((rand() / (float)RAND_MAX) * (31 - 1) + 1)];
    }
    [vals sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
        return [obj1 compare:obj2];
    }];
    d.getData = ^(NSUInteger item) {
        float x = [vals[item] floatValue];
        float y = powf(2, x / 7);
        NSString *label1 = [NSString stringWithFormat:@"%d", item];
        NSString *label2 = [NSString stringWithFormat:@"%f", y];
        return [LCLineChartDataItem dataItemWithX:x y:y xLabel:label1 dataLabel:label2];
    };

LCLineChartDataItemxy 属性显然是数据点的 x 和 y 值。《xLabel》是在选择数据点时显示在 x 轴上的文本,《dataLabel》通常只是 y 值的文本表示,当用户触摸它时直接显示在数据点的旁边。

请注意,为了获得一致的图表,项目应按 x 值排序。这将是大多数实际数据的情况。

最后,所有这些都被包装在 LCLineChartView

    LCLineChartView *chartView = [[LCLineChartView alloc] initWithFrame:CGRectMake(20, 700, 500, 300)];
    chartView.yMin = 0;
    chartView.yMax = powf(2, 31 / 7) + 0.5;
    chartView.ySteps = @[@"0.0",
                         [NSString stringWithFormat:@"%.02f", chartView.yMax / 2],
                         [NSString stringWithFormat:@"%.02f", chartView.yMax]];
    chartView.data = @[d];

    [self.view addSubview:chartView];

yMinyMax 属性应该是显而易见的。《ySteps》是在 y 轴上放置的标签数组。《data》是所有要使用的 LineChartData 对象的数组。《drawsDataPointOrnaments》是一个开关,用于确定是否在实数据点周围绘制圆圈。

屏幕截图

Screenshot 1

Screenshot 2

常见问题解答

  • 示例项目无法编译

    当前样本项目需要使用 CocoaPods。请先安装 Cocoapods,然后在 ios-linechart 目录下运行 pod install

  • 项目是否支持柱状图、饼图等?

    不。

联系

Travis CI build status

欢迎提交错误报告和 pull requests!请通过电子邮件或直接在 GitHub 上创建一个 issue 来与我联系。