//
|
// PNLineChart.h
|
// PNChartDemo
|
//
|
// Created by kevin on 11/7/13.
|
// Copyright (c) 2013年 kevinzhow. All rights reserved.
|
//
|
|
#import <UIKit/UIKit.h>
|
#import <QuartzCore/QuartzCore.h>
|
#import "PNChartDelegate.h"
|
#import "PNGenericChart.h"
|
|
@interface PNLineChart : PNGenericChart
|
|
/**
|
* Draws the chart in an animated fashion.
|
*/
|
- (void)strokeChart;
|
|
@property (nonatomic, weak) id<PNChartDelegate> 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
|