真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

包含ios開發(fā)餅狀圖的詞條

iOS使用Charts框架繪制—餅狀圖

首先先看一下效果:

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),儋州企業(yè)網(wǎng)站建設(shè),儋州品牌網(wǎng)站建設(shè),網(wǎng)站定制,儋州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,儋州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

一、創(chuàng)建餅狀圖對(duì)象

創(chuàng)建餅狀圖對(duì)象用到類是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);

}];

二、設(shè)置餅狀圖外觀樣式

1. 基本樣式

[self.pieChartView setExtraOffsetsWithLeft:30 top:0 right:30 bottom:0];//餅狀圖距離邊緣的間隙

self.pieChartView.usePercentValuesEnabled = YES;//是否根據(jù)所提供的數(shù)據(jù), 將顯示數(shù)據(jù)轉(zhuǎn)換為百分比格式

self.pieChartView.dragDecelerationEnabled = YES;//拖拽餅狀圖后是否有慣性效果

self.pieChartView.drawSliceTextEnabled = YES;//是否顯示區(qū)塊文本

2. 設(shè)置餅狀圖中間的空心樣式

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

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. 設(shè)置餅狀圖中心的文本

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

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. 設(shè)置餅狀圖描述

self.pieChartView.descriptionText = @"餅狀圖示例";

self.pieChartView.descriptionFont = [UIFont systemFontOfSize:10];

self.pieChartView.descriptionTextColor = [UIColor grayColor];

5. 設(shè)置餅狀圖圖例樣式

self.pieChartView.legend.maxSizePercent = 1;//圖例在餅狀圖中的大小占比, 這會(huì)影響圖例的寬高

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;//圖示大小

三、為餅狀圖提供數(shù)據(jù)

為餅狀圖提供數(shù)據(jù), 首先需要?jiǎng)?chuàng)建兩個(gè)數(shù)組yVals和xVals, yVals數(shù)組存放餅狀圖每個(gè)區(qū)塊的數(shù)據(jù), xVals存放的是每個(gè)區(qū)塊的名稱或者描述。

接著需要用PieChartDataSet.h類創(chuàng)建dataSet對(duì)象, 創(chuàng)建時(shí)將yVals放進(jìn)去。

然后需要用PieChartData.h類創(chuàng)建data對(duì)象, 創(chuàng)建時(shí)將xVals和dataSet對(duì)象放進(jìn)去。

最后直接把data對(duì)象賦值給餅狀圖的data屬性即可. 創(chuàng)建data對(duì)象代碼如下:

- (PieChartData *)setData{

double mult = 100;

int count = 5;//餅狀圖總共有幾塊組成

//每個(gè)區(qū)塊的數(shù)據(jù)

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];

}

//每個(gè)區(qū)塊的名稱或描述

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;//是否繪制顯示數(shù)據(jù)

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;//區(qū)塊顏色

dataSet.sliceSpace = 0;//相鄰區(qū)塊之間的間距

dataSet.selectionShift = 8;//選中區(qū)塊時(shí), 放大的半徑

dataSet.xValuePosition = PieChartValuePositionInsideSlice;//名稱位置

dataSet.yValuePosition = PieChartValuePositionOutsideSlice;//數(shù)據(jù)位置

//數(shù)據(jù)與區(qū)塊之間的用于指示的折線樣式

dataSet.valueLinePart1OffsetPercentage = 0.85;//折線中第一段起始位置相對(duì)于區(qū)塊的偏移量, 數(shù)值越大, 折線距離區(qū)塊越遠(yuǎn)

dataSet.valueLinePart1Length = 0.5;//折線中第一段長(zhǎng)度占比

dataSet.valueLinePart2Length = 0.4;//折線中第二段長(zhǎng)度最大占比

dataSet.valueLineWidth = 1;//折線的粗細(xì)

dataSet.valueLineColor = [UIColor brownColor];//折線顏色

//data

PieChartData *data = [[PieChartData alloc] initWithXVals:xVals dataSet:dataSet];

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];

formatter.numberStyle = NSNumberFormatterPercentStyle;

formatter.maximumFractionDigits = 0;//小數(shù)位數(shù)

formatter.multiplier = @1.f;

[data setValueFormatter:formatter];//設(shè)置顯示數(shù)據(jù)格式

[data setValueTextColor:[UIColor brownColor]];

[data setValueFont:[UIFont systemFontOfSize:10]];

return data;

}

運(yùn)行結(jié)果如下:

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

self.pieChartView.drawHoleEnabled = NO;

效果如下:

每個(gè)區(qū)塊之間如果需要間距, 可以通過dataSet對(duì)象的sliceSpace屬性設(shè)置, 代碼如下:

dataSet.sliceSpace = 3;

效果如下:

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

ios餅圖繪制邏輯

源碼

1、按百分比畫圓弧度:

UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:start endAngle:end clockwise: YES ];

? ? ? ? [color set];

? ? ? ? [path addLineToPoint:center];

? ? ? ? [path fill];

2、添加圓心遮擋:

3、畫折線跟引線:

//1.獲取上下文

? ? CGContextRef ctx = UIGraphicsGetCurrentContext();

? ? //2.繪制路徑

? ? UIBezierPath *path = [UIBezierPath bezierPath];

? ? [path moveToPoint:CGPointMake(endX, endY)];

? ? [path addLineToPoint:CGPointMake(breakPointX, breakPointY)];

? ? [path addLineToPoint:CGPointMake(startX, startY)];

? ? CGContextSetLineWidth(ctx, 0.5);

? ? //設(shè)置顏色

? ? [color set];

? ? //3.把繪制的內(nèi)容添加到上下文當(dāng)中

? ? CGContextAddPath(ctx, path.CGPath);

? ? //4.把上下文的內(nèi)容顯示到View上(渲染到View的layer)(stroke fill)

? ? CGContextStrokePath(ctx);

4、折線起始位置添加圓點(diǎn);

5、在引線周圍添加文本。

注意事項(xiàng):

1、當(dāng)前文本區(qū)域要跟前面所有文本區(qū)域比較是否有相交,相交后要調(diào)整當(dāng)前文本區(qū)域;

2、圖表內(nèi)的圓點(diǎn)、文本、圓心遮擋、引線等既可以畫也可以添加View的方式;

3、調(diào)整好圓弧半徑及文本區(qū)域高寬,避免界面遮擋。

iOS 中各種折線.曲線.圖形繪制方法集錦

第一 折線圖實(shí)現(xiàn)

.1) 自定義視圖實(shí)現(xiàn)

.2)關(guān)鍵技術(shù)實(shí)現(xiàn)

.3) 方法調(diào)用

.4) 效果展示

第二 走勢(shì)曲線圖實(shí)現(xiàn)

.1) 導(dǎo)入DJChart第三方庫

.2)橫豎軸參數(shù)設(shè)置

.3) 方法調(diào)用

.4) 效果展示

第三 畫線圖實(shí)現(xiàn)

.1) 導(dǎo)入ZXQuartz第三方庫

.2) 自定義視圖,畫各種圖形

.3) 方法調(diào)用

.4) 效果展示

第四 柱狀圖實(shí)現(xiàn)

.1) 導(dǎo)入ZXQuartz第三方庫

.2)橫豎軸參數(shù)設(shè)置

.3) 方法調(diào)用

.4) 效果展示

第五 各式圖形實(shí)現(xiàn)

.1) 導(dǎo)入DJChart第三方庫

.2)關(guān)鍵技術(shù)實(shí)現(xiàn)

.3) 方法調(diào)用

.4) 效果展示

第六 餅狀圖實(shí)現(xiàn)

.1) 關(guān)鍵技術(shù)實(shí)現(xiàn)

.2) 方法調(diào)用

.3) 效果展示

總結(jié)

前言

大家經(jīng)常在做項(xiàng)目過程中,都會(huì)遇到一些畫圖,例如我們?cè)谔鞖忸A(yù)報(bào)中,統(tǒng)計(jì)這一周的天氣狀況變化時(shí),這時(shí)我們就需要用折線圖來進(jìn)行統(tǒng)計(jì)(圖一);例如統(tǒng)計(jì)就業(yè)率時(shí),我們可能會(huì)用到柱狀圖等等.

首先我們來看看這樣的折線該怎么實(shí)現(xiàn)呢?.現(xiàn)在我們來看看整體效果圖.

現(xiàn)在我們來看看各種不同的圖形到底是什么樣的.

1) 折線圖

2) 走勢(shì)趨勢(shì)圖

3) 畫線圖

4) 柱狀圖

5) 各種圖形

6)餅狀圖

好了看了上面各種折線圖,大家一定很關(guān)心這些折線圖是如何完成繪制的,下面我們就來看看各種圖形的具體實(shí)現(xiàn).

第一 折線圖實(shí)現(xiàn)

1) 自定義視圖

2) 關(guān)鍵技術(shù)實(shí)現(xiàn)

3 方法調(diào)用

4) 效果展示

第二 走勢(shì)曲線圖實(shí)現(xiàn)

1) 導(dǎo)入DJChart第三方庫

2) 橫豎軸參數(shù)設(shè)置

3) 方法調(diào)用

4) 效果圖展示

第三 畫線圖實(shí)現(xiàn)

1) 導(dǎo)入ZXQuartz第三方庫

2) 自定義視圖,畫各種圖形

3) 方法調(diào)用

4) 效果圖展示

第四 柱狀圖實(shí)現(xiàn)

1) 導(dǎo)入ZXQuartz第三方庫

2) 關(guān)鍵技術(shù)實(shí)現(xiàn)

3) 方法調(diào)用

4) 效果圖展示

第六 餅狀圖實(shí)現(xiàn)

1) 關(guān)鍵技術(shù)實(shí)現(xiàn)

2) 方法調(diào)用

3) 效果圖展示

總結(jié)

是不是看起來很簡(jiǎn)單,把所有的繪圖方式都集中起來,以后大家要用到就不用那么麻煩了.


網(wǎng)站名稱:包含ios開發(fā)餅狀圖的詞條
URL網(wǎng)址:http://weahome.cn/article/dscoesi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部