实现效果:
代码原型: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