ios-linechart-2 1.3.4

ios-linechart-2 1.3.4

测试测试情况
语言语言 Obj-CObjective C
许可证 MIT
发布最新版本2015年10月

Claudiu Vintila 维护。




  • 作者:
  • Marcel Ruegenberg 和 Claudiu Vintila

ios-linechart

专为喜爱简洁的 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 属性应该是显而易见的。在 y 轴上放置标签的 ySteps 是一个数组。data 是使用到的所有 LineChartData 对象的数组。drawsDataPointOrnaments 是一个开关,用于确定是否在实际数据点周围绘制圆形。

截图

Screenshot 1

Screenshot 2

常见问题

  • 示例项目无法编译

    目前示例项目需要CocoaPods支持。请先安装CocoaPods,然后在ios-linechart目录中运行pod install命令。

支持此项目

Support via Gittip

联系

Travis CI build status

欢迎提交错误报告和拉取请求!请通过电子邮件联系我,或在GitHub上打开一个问题。