https://github.com/easyui/StockPlotting
// // SPView.m // StockPlotting // // Created by EZ on 13-11-5. // Copyright (c) 2013年 cactus. All rights reserved. // #define NLSystemVersionGreaterOrEqualThan(version) ([[[UIDevice currentDevice] systemVersion] floatValue] >= version) #define IOS7_OR_LATER NLSystemVersionGreaterOrEqualThan(7.0) #define GraphColor [[UIColor greenColor] colorWithAlphaComponent:0.5] #define str(index) [NSString stringWithFormat : @"%.f", [[self.values objectAtIndex:(index)] floatValue] * kYScale] #define point(x, y) CGPointMake((x) * kXScale, yOffset + (y) * kYScale) #import "SPView.h" @interface SPView () @property (nonatomic, strong) dispatch_source_t timer; @end @implementation SPView const CGFloat kXScale = 15.0; const CGFloat kYScale = 50.0; static inline CGAffineTransform CGAffineTransformMakeScaleTranslate(CGFloat sx, CGFloat sy, CGFloat dx, CGFloat dy) { return CGAffineTransformMake(sx, 0.f, 0.f, sy, dx, dy); } - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } - (void)awakeFromNib { [self setContentMode:UIViewContentModeRight]; _values = [NSMutableArray array]; __weak id weakSelf = self; double delayInSeconds = 0.25; self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue()); dispatch_source_set_timer( _timer, dispatch_walltime(NULL, 0), (unsigned)(delayInSeconds * NSEC_PER_SEC), 0); dispatch_source_set_event_handler(_timer, ^{ [weakSelf updateValues]; }); dispatch_resume(_timer); } - (void)updateValues { double nextValue = sin(CFAbsoluteTimeGetCurrent()) + ((double)rand() / (double)RAND_MAX); [self.values addObject: [NSNumber numberWithDouble:nextValue]]; CGSize size = self.bounds.size; /* * UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; * if(orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight){ * * * } */ CGFloat maxDimension = size.width; // MAX(size.height, size.width); NSUInteger maxValues = (NSUInteger)floorl(maxDimension / kXScale); if ([self.values count] > maxValues) { [self.values removeObjectsInRange: NSMakeRange(0, [self.values count] - maxValues)]; } [self setNeedsDisplay]; } - (void)dealloc { dispatch_source_cancel(_timer); } - (void)drawRect:(CGRect)rect { if ([self.values count] == 0) { return; } CGContextRef ctx = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor(ctx, [GraphColor CGColor]); CGContextSetLineJoin(ctx, kCGLineJoinRound); CGContextSetLineWidth(ctx, 2); CGMutablePathRef path = CGPathCreateMutable(); CGFloat yOffset = self.bounds.size.height / 2; CGAffineTransform transform = CGAffineTransformMakeScaleTranslate(kXScale, kYScale, 0, yOffset); CGPathMoveToPoint(path, &transform, 0, 0); CGPathAddLineToPoint(path, &transform, self.bounds.size.width, 0); // self.bounds.size.width其实大了kXScale倍 CGFloat y = [[self.values objectAtIndex:0] floatValue]; CGPathMoveToPoint(path, &transform, 0, y); [self drawAtPoint:point(0, y) withStr:str(0)]; for (NSUInteger x = 1; x < [self.values count]; ++x) { y = [[self.values objectAtIndex:x] floatValue]; CGPathAddLineToPoint(path, &transform, x, y); [self drawAtPoint:point(x, y) withStr:str(x)]; } CGContextAddPath(ctx, path); CGPathRelease(path); CGContextStrokePath(ctx); } - (void)drawAtPoint:(CGPoint)point withStr:(NSString *)str { if (IOS7_OR_LATER) { #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 [str drawAtPoint:point withAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:8], NSStrokeColorAttributeName:GraphColor}]; #endif } else { [str drawAtPoint:point withFont:[UIFont systemFontOfSize:8]]; } } @end
相关推荐
ios上实现的一个简单的折线图demo。
iOS实现股票折线图功能,主要是把数据解析为每个节点然后套进去
一份非常简单的jfreechart折线图demo!!!!!!!!
本资源为自定义折线图demo代码,另有本人博客说明整个自定义控件的大题思路,做了一些简单的介绍。 本资源为自定义折线图demo代码,另有本人博客说明整个自定义控件的大题思路,做了一些简单的介绍
实现左右滑动,长按显示数据
使用AChartengine画折线图Demo
android折线图代码,可自己定制横纵坐标的刻度线和圆点的字体的颜色,可根据数据动态显示折线图
本demo是做一个Android利用蓝牙协议进行连接到心电检测设备,并且在应用上显示检测到的心电的值,用波形图,折线图显示,用到的技术点是 蓝牙协议,socket,硬件是嵌入式开发。
折线图demo,因为jfreechart与struts2结合使用配置太麻烦了。
Android 折线 柱状图 demo
android graphView折线 demo。
自己整理的一个C#winform demo 使用zedgraph制作饼图 条形图和折线图
Demo对应的博客地址:http://blog.csdn.net/kong_gu_you_lan/article/details/53634368
平滑的折线图,支持手势的X轴拉伸,Y轴拉伸
百度echarts使用教程之折线图demo案例源码,此文件可以直接运行看效果
ios的折线图
基于CoreGraphics框架,可自定义坐标点,给填充色和折线颜色,加标示点和每个点的标注。
android 条形图 1.展示条形图或折线图 2.绘制启动动画
该demo适用于生成动态的折线图,而且是x,y两个维度的动态,如果想修改成一个维度更简单。本例子经过本人亲测通过,保证能使用! 或者查看帖子:http://www.itxiu.net/javascript/20161231/219.html
iOS开发 图表Chart 折线图、柱状图