cahrt框架 ios_iOS Charts框架集成及使用
- (LineChartDataSet *)drawLineWithArr:(NSArray *)arr title:(NSString *)title color:(UIColor *)color {
if (arr.count == 0) {
return nil;
}
// 處理折線數據
NSMutableArray *statistics = [NSMutableArray array];
double leftAxisMin = 0;
double leftAxisMax = 0;
for (int i = 0; i < arr.count; i++) {
NSString *num = arr[i];
double temp ? = [num doubleValue];
double value? = [self roundFloat:temp];
leftAxisMax ? = MAX(value, leftAxisMax);
leftAxisMin ? = MIN(value, leftAxisMin);
[statistics addObject:[[ChartDataEntry alloc] initWithX:i y:value]];
}
CGFloat topNum = leftAxisMax * (5.0/4.0);
if (leftAxisMax ==? leftAxisMin) {
_linechartView.leftAxis.axisMaxValue = 10;
}else{
_linechartView.leftAxis.axisMaxValue = topNum * _scale;
}
if (leftAxisMin < 0) {
CGFloat minNum = leftAxisMin * (5.0/4.0);
_linechartView.leftAxis.axisMinValue = minNum ;
}
// 設置Y軸數據
_linechartView.leftAxis.valueFormatter = self; //需要遵IChartAxisValueFormatter協議
// 設置折線數據
LineChartDataSet *chartDataSet? = nil;
chartDataSet = [[LineChartDataSet alloc] initWithValues:statistics label:title];
[chartDataSet setColor:color];????? //折線顏色
chartDataSet.valueFont = [UIFont systemFontOfSize:12]; ? ? //折線字體大小
chartDataSet.valueFormatter = self;? ?//需要遵循IChartValueFormatter協議
chartDataSet.lineWidth = 1.0f;????//折線寬度
chartDataSet.valueColors = @[color];???? //折線拐點處顯示數據的顏色
chartDataSet.drawCirclesEnabled = NO;????//是否繪制拐點
chartDataSet.axisDependency = AxisDependencyLeft;???? //軸線方向
chartDataSet.highlightColor = [UIColor clearColor];????//選中線條顏色
chartDataSet.highlightLineWidth = 1.00f;
chartDataSet.drawCircleHoleEnabled = YES;?????//是否繪制中間的空心
// chartDataSet.circleHoleRadius = 2.0f;???? //空心的半徑
// chartDataSet.circleHoleColor = WKOrangeColor;???? //空心的顏色
chartDataSet.drawFilledEnabled = YES;//是否填充顏色
NSArray *gradientColors = @[(id)[ChartColorTemplates colorFromString:@"#ffffff"].CGColor,
(id)[ChartColorTemplates colorFromString:@"#f9511e"].CGColor];
CGGradientRef gradientRef = CGGradientCreateWithColors(nil, (CFArrayRef)gradientColors, nil);
chartDataSet.fillAlpha = 0.7f;//透明度
chartDataSet.fill = [ChartFill fillWithLinearGradient:gradientRef angle:90.0f]; //賦值填充顏色對象
CGGradientRelease(gradientRef);
return chartDataSet;
}
#pragma mark - IChartValueFormatter delegate (折線值)
- (NSString *)stringForValue:(double)value entry:(ChartDataEntry *)entry dataSetIndex:(NSInteger)dataSetIndex viewPortHandler:(ChartViewPortHandler *)viewPortHandler {
return nil;
// return [NSString stringWithFormat:@"%@", value];
}
#pragma mark - IChartAxisValueFormatter delegate (y軸值) (x軸的值寫在DateValueFormatter類里, 都是這個協議方法)
- (NSString *)stringForValue:(double)value axis:(ChartAxisBase *)axis {
if (ABS(value) > 1000) {
return [NSString stringWithFormat:@"%.1fk", value/(double)1000];
}
return [NSString stringWithFormat:@"%0.2f", value];
}
總結
以上是生活随笔為你收集整理的cahrt框架 ios_iOS Charts框架集成及使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 酷狗demo_Andro
- 下一篇: 电厂运维的cis数据_数据中心运维,太难