绘制折线图

实现效果:


代码原型:SHLineGraphView  大家可以自行下载,文档最低部有注释版的示例代码.

示例实现了超过具体数值可以将点替换为特定图片,将竖轴开始的数值从特定数值开始,同时支持多条线段同时绘制.


首先在这里解释一下下面的两个方法,

关于绘制线段,首先需要的就是一个起点,也就是CGPathMoveToPoint

之后我们还需要一个终点,也就是CGPathAddLineToPoint

使用的时候需要注意,第一个参数是你所需要绘制的路径CGMutablePathReflinesPath =CGPathCreateMutable();

//绘制横线的起点

CGPathMoveToPoint(linesPath,NULL, currentLabelPoint.x+ xIntervalInPx/2, currentLabelPoint.y);

//绘制横线的距离长度

CGPathAddLineToPoint(linesPath,NULL, currentLabelPoint.x+ xIntervalInPx/2, currentLabelPoint.y- intervalInPx1);

当我们给定了线段的起点和终点的时候,我们就能够在图层上成功的绘制一条线段了

需要注意,我们绘制线段的起点都是图层的左上角



1.首先来看主视图中都需要填写什么信息

- (void)viewDidLoad
{
  [super viewDidLoad];

    //设置折线图的大小
    SHLineGraphView *_lineGraph = [[SHLineGraphView alloc] initWithFrame:CGRectMake(0, 0,  SCREEN_WIDTH * 2, SCREEN_HEIGHT/2)];
  
//==============================================================================================
//
//                                        第一幅 折线图
//
//==============================================================================================
    NSDictionary *_themeAttributes = @{
                                       //横轴字的颜色
                                       kXAxisLabelColorKey : [UIColor blackColor],
                                       kXAxisLabelFontKey : [UIFont fontWithName:@"TrebuchetMS" size:10],
                                       //竖轴的字颜色
                                       kYAxisLabelColorKey : [UIColor blackColor],
                                       kYAxisLabelFontKey : [UIFont fontWithName:@"TrebuchetMS" size:10],
                                       //距离两边的距离
                                       kYAxisLabelSideMarginsKey : @10,
                                       //坐标线的颜色
                                       kPlotBackgroundLineColorKye : [UIColor colorWithWhite:0.8 alpha:1.000]
                                       };
    
    _lineGraph.themeAttributes = _themeAttributes;
    //数值最大值
    _lineGraph.yAxisRange = @(200);
    //竖轴开始坐标数值
    _lineGraph.startYAxisRange = @(0);
    //竖轴点的间距
    _lineGraph.PX_IN_Y = @(20);
    //竖轴点的个数
    _lineGraph.COUNT_IN_Y = @(10);
    //设置最大值
    _lineGraph.MAX_Range_1 = @(110);
    //设置最小值
    _lineGraph.MIN_Range_1 = @(40);
    //Y轴单位文字
    _lineGraph.yAxisSuffix = @"(千克)";
    
    //点的标题文字
//    NSArray
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值