// // PNLineChart.h // PNChartDemo // // Created by kevin on 11/7/13. // Copyright (c) 2013年 kevinzhow. All rights reserved. // #import #import #import "PNChartDelegate.h" #import "PNGenericChart.h" @interface PNLineChart : PNGenericChart /** * Draws the chart in an animated fashion. */ - (void)strokeChart; @property (nonatomic, weak) id delegate; @property (nonatomic) NSArray *xLabels; @property (nonatomic) NSArray *yLabels; /** * Array of `LineChartData` objects, one for each line. */ @property (nonatomic) NSArray *chartData; @property (nonatomic) NSMutableArray *pathPoints; @property (nonatomic) NSMutableArray *xChartLabels; @property (nonatomic) NSMutableArray *yChartLabels; @property (nonatomic) CGFloat xLabelWidth; @property (nonatomic) UIFont *xLabelFont; @property (nonatomic) UIColor *xLabelColor; @property (nonatomic) CGFloat yValueMax; @property (nonatomic) CGFloat yFixedValueMax; @property (nonatomic) CGFloat yFixedValueMin; @property (nonatomic) CGFloat yValueMin; @property (nonatomic) NSInteger yLabelNum; @property (nonatomic) CGFloat yLabelHeight; @property (nonatomic) UIFont *yLabelFont; @property (nonatomic) UIColor *yLabelColor; @property (nonatomic) CGFloat chartCavanHeight; @property (nonatomic) CGFloat chartCavanWidth; @property (nonatomic) BOOL showLabel; @property (nonatomic) BOOL showGenYLabels; @property (nonatomic) BOOL showYGridLines; @property (nonatomic) UIColor *yGridLinesColor; @property (nonatomic) BOOL thousandsSeparator; @property (nonatomic) CGFloat chartMarginLeft; @property (nonatomic) CGFloat chartMarginRight; @property (nonatomic) CGFloat chartMarginTop; @property (nonatomic) CGFloat chartMarginBottom; /** * Controls whether to show the coordinate axis. Default is NO. */ @property (nonatomic, getter = isShowCoordinateAxis) BOOL showCoordinateAxis; @property (nonatomic) UIColor *axisColor; @property (nonatomic) CGFloat axisWidth; @property (nonatomic, strong) NSString *xUnit; @property (nonatomic, strong) NSString *yUnit; /** * String formatter for float values in y-axis labels. If not set, defaults to @"%1.f" */ @property (nonatomic, strong) NSString *yLabelFormat; /** * Block formatter for custom string in y-axis labels. If not set, defaults to yLabelFormat */ @property (nonatomic, copy) NSString* (^yLabelBlockFormatter)(CGFloat); /** * Controls whether to curve the line chart or not */ @property (nonatomic) BOOL showSmoothLines; - (void)setXLabels:(NSArray *)xLabels withWidth:(CGFloat)width; /** * Update Chart Value */ - (void)updateChartData:(NSArray *)data; /** * returns the Legend View, or nil if no chart data is present. * The origin of the legend frame is 0,0 but you can set it with setFrame:(CGRect) * * @param mWidth Maximum width of legend. Height will depend on this and font size * * @return UIView of Legend */ - (UIView*) getLegendWithMaxWidth:(CGFloat)mWidth; + (CGSize)sizeOfString:(NSString *)text withWidth:(float)width font:(UIFont *)font; + (CGPoint)midPointBetweenPoint1:(CGPoint)point1 andPoint2:(CGPoint)point2; + (CGPoint)controlPointBetweenPoint1:(CGPoint)point1 andPoint2:(CGPoint)point2; @end