亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS使用Charts框架繪制餅狀圖

2020-07-26 03:00:03
字體:
來源:轉載
供稿:網友

首先先看一下效果:

餅狀圖

一、創建餅狀圖對象

創建餅狀圖對象用到類是PieChartView.h, 代碼如下:

self.pieChartView = [[PieChartView alloc] init];self.pieChartView.backgroundColor = BgColor;[self.view addSubview:self.pieChartView];[self.pieChartView mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(300, 300)); make.center.mas_equalTo(self.view);}];

二、設置餅狀圖外觀樣式

1. 基本樣式

[self.pieChartView setExtraOffsetsWithLeft:30 top:0 right:30 bottom:0];//餅狀圖距離邊緣的間隙self.pieChartView.usePercentValuesEnabled = YES;//是否根據所提供的數據, 將顯示數據轉換為百分比格式self.pieChartView.dragDecelerationEnabled = YES;//拖拽餅狀圖后是否有慣性效果self.pieChartView.drawSliceTextEnabled = YES;//是否顯示區塊文本

2. 設置餅狀圖中間的空心樣式

空心有兩個圓組成, 一個是hole, 一個是transparentCircle, transparentCircle里面是hole, 所以餅狀圖中間的空心也就是一個同心圓. 代碼如下:

self.pieChartView.drawHoleEnabled = YES;//餅狀圖是否是空心self.pieChartView.holeRadiusPercent = 0.5;//空心半徑占比self.pieChartView.holeColor = [UIColor clearColor];//空心顏色self.pieChartView.transparentCircleRadiusPercent = 0.52;//半透明空心半徑占比self.pieChartView.transparentCircleColor = [UIColor colorWithRed:210/255.0 green:145/255.0 blue:165/255.0 alpha:0.3];//半透明空心的顏色

3. 設置餅狀圖中心的文本

當餅狀圖是空心樣式時, 可以在餅狀圖中心添加文本, 添加文本有兩種方法. 一種方法是使用centerText 屬性添加, 這種方法不能設置字體顏色、大小等. 另一種方法是使用centerAttributedText屬性添加, 這種方法添加的富文本, 因此就可以對字體進行進一步美化了. 代碼如下:

if (self.pieChartView.isDrawHoleEnabled == YES) { self.pieChartView.drawCenterTextEnabled = YES;//是否顯示中間文字 //普通文本// self.pieChartView.centerText = @"餅狀圖";//中間文字 //富文本 NSMutableAttributedString *centerText = [[NSMutableAttributedString alloc] initWithString:@"餅狀圖"]; [centerText setAttributes:@{NSFontAttributeName: [UIFont boldSystemFontOfSize:16],     NSForegroundColorAttributeName: [UIColor orangeColor]}    range:NSMakeRange(0, centerText.length)]; self.pieChartView.centerAttributedText = centerText;}

4. 設置餅狀圖描述

self.pieChartView.descriptionText = @"餅狀圖示例";self.pieChartView.descriptionFont = [UIFont systemFontOfSize:10];self.pieChartView.descriptionTextColor = [UIColor grayColor];

6. 設置餅狀圖圖例樣式

self.pieChartView.legend.maxSizePercent = 1;//圖例在餅狀圖中的大小占比, 這會影響圖例的寬高self.pieChartView.legend.formToTextSpace = 5;//文本間隔self.pieChartView.legend.font = [UIFont systemFontOfSize:10];//字體大小self.pieChartView.legend.textColor = [UIColor grayColor];//字體顏色self.pieChartView.legend.position = ChartLegendPositionBelowChartCenter;//圖例在餅狀圖中的位置self.pieChartView.legend.form = ChartLegendFormCircle;//圖示樣式: 方形、線條、圓形self.pieChartView.legend.formSize = 12;//圖示大小

三、為餅狀圖提供數據

為餅狀圖提供數據, 首先需要創建兩個數組yVals和xVals, yVals數組存放餅狀圖每個區塊的數據, xVals存放的是每個區塊的名稱或者描述.

接著需要用PieChartDataSet.h類創建dataSet對象, 創建時將yVals放進去.

然后需要用PieChartData.h類創建data對象, 創建時將xVals和dataSet對象放進去.

最后直接把data對象賦值給餅狀圖的data屬性即可. 創建data對象代碼如下:

- (PieChartData *)setData{ double mult = 100; int count = 5;//餅狀圖總共有幾塊組成 //每個區塊的數據 NSMutableArray *yVals = [[NSMutableArray alloc] init]; for (int i = 0; i < count; i++) { double randomVal = arc4random_uniform(mult + 1); BarChartDataEntry *entry = [[BarChartDataEntry alloc] initWithValue:randomVal xIndex:i]; [yVals addObject:entry]; } //每個區塊的名稱或描述 NSMutableArray *xVals = [[NSMutableArray alloc] init]; for (int i = 0; i < count; i++) { NSString *title = [NSString stringWithFormat:@"part%d", i+1]; [xVals addObject:title]; } //dataSet PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithYVals:yVals label:@""]; dataSet.drawValuesEnabled = YES;//是否繪制顯示數據 NSMutableArray *colors = [[NSMutableArray alloc] init]; [colors addObjectsFromArray:ChartColorTemplates.vordiplom]; [colors addObjectsFromArray:ChartColorTemplates.joyful]; [colors addObjectsFromArray:ChartColorTemplates.colorful]; [colors addObjectsFromArray:ChartColorTemplates.liberty]; [colors addObjectsFromArray:ChartColorTemplates.pastel]; [colors addObject:[UIColor colorWithRed:51/255.f green:181/255.f blue:229/255.f alpha:1.f]]; dataSet.colors = colors;//區塊顏色 dataSet.sliceSpace = 0;//相鄰區塊之間的間距 dataSet.selectionShift = 8;//選中區塊時, 放大的半徑 dataSet.xValuePosition = PieChartValuePositionInsideSlice;//名稱位置 dataSet.yValuePosition = PieChartValuePositionOutsideSlice;//數據位置 //數據與區塊之間的用于指示的折線樣式 dataSet.valueLinePart1OffsetPercentage = 0.85;//折線中第一段起始位置相對于區塊的偏移量, 數值越大, 折線距離區塊越遠 dataSet.valueLinePart1Length = 0.5;//折線中第一段長度占比 dataSet.valueLinePart2Length = 0.4;//折線中第二段長度最大占比 dataSet.valueLineWidth = 1;//折線的粗細 dataSet.valueLineColor = [UIColor brownColor];//折線顏色 //data PieChartData *data = [[PieChartData alloc] initWithXVals:xVals dataSet:dataSet]; NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.numberStyle = NSNumberFormatterPercentStyle; formatter.maximumFractionDigits = 0;//小數位數 formatter.multiplier = @1.f; [data setValueFormatter:formatter];//設置顯示數據格式 [data setValueTextColor:[UIColor brownColor]]; [data setValueFont:[UIFont systemFontOfSize:10]]; return data;}

運行結果如下:

運行結果

如果不需要空心樣式的餅狀圖, 可以將餅狀圖的drawHoleEnabled賦值為NO, 將中間的文本去掉即可, 代碼如下:

self.pieChartView.drawHoleEnabled = NO;

效果如下:

實心餅狀圖

每個區塊之間如果需要間距, 可以通過dataSet對象的sliceSpace屬性設置, 代碼如下:

dataSet.sliceSpace = 3;

效果如下:

有區塊間距的餅狀圖

由于屬性較多, 其它效果可以自行嘗試.

Demo 下載地址: http://xiazai.VeVB.COm/201612/yuanma/PieChartDemo-master_jb51.rar

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美亚洲一二三区| 国产欧美欧洲在线观看| www.日韩av.com| 欧美日韩加勒比精品一区| 日韩女在线观看| 青青草国产精品一区二区| 国产啪精品视频| 亚洲成人久久网| 欧美日韩中文字幕在线视频| 亚洲成人av片在线观看| 亚洲第一福利网站| 日韩国产高清污视频在线观看| 国产精品中文在线| 国产精品久久久久久亚洲影视| 国产精品亚洲美女av网站| 国产精品亚洲视频在线观看| 午夜美女久久久久爽久久| 国产综合在线观看视频| 国产一区深夜福利| 亚洲美女视频网| 91精品国产综合久久香蕉的用户体验| 美日韩精品免费观看视频| 久久久久久久久久久国产| 日韩av电影在线免费播放| 91沈先生在线观看| 国产精品美腿一区在线看| 亚洲影院色在线观看免费| 精品av在线播放| 热re91久久精品国99热蜜臀| 色偷偷888欧美精品久久久| 久久夜精品va视频免费观看| 亚洲男人第一av网站| 高跟丝袜欧美一区| 国产人妖伪娘一区91| 亚洲成人中文字幕| 欧美视频13p| 亚洲欧美999| 91免费精品国偷自产在线| 91精品成人久久| 日韩va亚洲va欧洲va国产| 日韩av影院在线观看| 欧美大片免费观看在线观看网站推荐| 日韩中文在线中文网三级| 欧美一区二区三区……| 国产精品美女www爽爽爽视频| 国产亚洲欧美aaaa| 欧美性xxxx在线播放| 9.1国产丝袜在线观看| 国产精品日韩在线| 亚洲精品久久久久国产| 青青a在线精品免费观看| 狠狠色狠狠色综合日日五| 8090理伦午夜在线电影| 国产成人精品在线观看| 精品欧美国产一区二区三区| 另类图片亚洲另类| 日韩精品999| 欧美一级bbbbb性bbbb喷潮片| 91在线视频精品| 欧美性猛交xxxx黑人| 欧美黑人巨大精品一区二区| 欧美视频免费在线观看| 日韩美女视频中文字幕| 国产精品日韩av| 日韩视频―中文字幕| 岛国av午夜精品| 久久九九精品99国产精品| 欧美一级成年大片在线观看| 91精品久久久久久久久青青| 亚洲欧美激情视频| 宅男66日本亚洲欧美视频| 精品二区三区线观看| 国产成人精品综合久久久| 欧美电影在线观看高清| 久久久亚洲国产天美传媒修理工| 国产精品爽黄69天堂a| 九九久久久久99精品| 欧美视频13p| 大伊人狠狠躁夜夜躁av一区| 日韩成人久久久| 91精品国产高清| 911国产网站尤物在线观看| 91av视频导航| 亚洲精品视频二区| 亚洲人a成www在线影院| 亚洲肉体裸体xxxx137| 欧美性猛交xxxx偷拍洗澡| 51久久精品夜色国产麻豆| 亚洲电影免费观看高清完整版在线观看| 91在线视频成人| 精品精品国产国产自在线| 91精品视频专区| 亚洲天堂第二页| 成人h片在线播放免费网站| 欧美黑人巨大xxx极品| 欧美性猛交xxxx乱大交| 国产成人avxxxxx在线看| 欧洲美女7788成人免费视频| 精品成人国产在线观看男人呻吟| 亚洲人成亚洲人成在线观看| 91沈先生在线观看| 51久久精品夜色国产麻豆| 久久精品国产欧美亚洲人人爽| 国产日韩欧美中文在线播放| 91九色单男在线观看| 日韩av免费在线播放| 国模精品一区二区三区色天香| 久久精彩免费视频| xvideos成人免费中文版| 亚洲一级黄色av| 亚洲福利小视频| 欧美电影免费观看大全| 国产视频精品xxxx| 久久免费精品视频| 久久琪琪电影院| 91久久精品在线| 91久久夜色精品国产网站| 国产中文字幕日韩| 亚洲成人免费在线视频| 中文欧美日本在线资源| 国产欧美精品一区二区三区-老狼| 日韩在线视频网站| 亚洲肉体裸体xxxx137| 在线电影欧美日韩一区二区私密| 午夜精品福利视频| 久久久久免费视频| 国产精品入口日韩视频大尺度| 国产精品∨欧美精品v日韩精品| 亚洲最新在线视频| 欧美在线一区二区视频| 亚洲美女视频网站| 成人写真视频福利网| 欧美性猛交xxxx乱大交蜜桃| 国产精品视频一区国模私拍| 亚洲第一av在线| 国产欧美韩国高清| 亚洲精品98久久久久久中文字幕| 欧美电影在线观看网站| 日本国产精品视频| 亚洲男人天堂手机在线| 日韩欧美国产激情| 午夜精品福利在线观看| 亚洲国产高潮在线观看| 日韩欧美成人网| 4p变态网欧美系列| 欧美伦理91i| 国内精品视频一区| 成人免费看黄网站| 色噜噜狠狠色综合网图区| 亚洲美女在线观看| 欧美成aaa人片在线观看蜜臀| www.久久久久| 欧美午夜片欧美片在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 久久久久久久久久久久久久久久久久av| 色悠悠久久久久| 黄色成人在线播放| 97av在线视频免费播放| 国产精品偷伦一区二区| 欧美一区二区视频97| 国模视频一区二区三区| 欧美午夜宅男影院在线观看| 欧美成人高清视频| 影音先锋欧美精品|