iOS開源:AAChartKit -一款極其精美的 iOS 開源圖表庫
AAChartKit
AAChartKit項目,是在流行的開源前端圖表庫 Highcharts 的基礎上,封裝的面向對象的,一組簡單易用,極其精美的圖表繪制控件.
- 適配 iOS 8, 支持ARC,支持 OC語言,配置簡單.
- 功能強大,支持柱狀圖 條形圖 折線圖 填充圖 雷達圖等多種圖形
- 動畫效果細膩精致,流暢優美.
- 支持類 Masonry 鏈式編程語法
親愛的,如果您使用時,覺得滿意,請賞一顆星星:sparkles:,您的鼓勵將是我繼續努力的一大動力 .
使用方法
準備工作
- 將項目demo中的文件夾 AAChartKitFiles 拖入到所需項目中.
- 在你的項目的 .pch 全局宏定義文件中添加
#import "AAGlobalMacro.h"
正式開始
1.在你的視圖控制器文件中添加
#import "AAChartView.h"
2.創建視圖AAChartView
AAChartView *chartView = [[AAChartView alloc]init];
self.view.backgroundColor = [UIColor whiteColor];
chartView.frame = CGRectMake(0, 60, self.view.frame.size.width, self.view.frame.size.height-220);
chartView.contentHeight =self.view.frame.size.height-220;//設置圖表視圖的內容高度(默認 contentHeight 和 AAChartView 的高度相同)
[self.view addSubview:chartView];
3.配置視圖模型AAChartModel
AAChartModel *chartModel= AAObject(AAChartModel)
.chartTypeSet(AAChartTypeColumn)//設置圖表的類型(這里以設置的為柱狀圖為例)
.titleSet(@"編程語言熱度")//設置圖表標題
.subtitleSet(@"虛擬數據")//設置圖表副標題
.categoriesSet(@[@"Java",@"Swift",@"Python",@"Ruby", @"PHP",@"Go",@"C",@"C#",@"C++"])//設置圖表橫軸的內容
.yAxisTitleSet(@"攝氏度")//設置圖表 y 軸的單位
.seriesSet(@[
AAObject(AASeriesElement)
.nameSet(@"2017")
.dataSet(@[@45,@56,@34,@43,@65,@56,@47,@28,@49]),
AAObject(AASeriesElement)
.nameSet(@"2018")
.dataSet(@[@11,@12,@13,@14,@15,@16,@17,@18,@19]),
AAObject(AASeriesElement)
.nameSet(@"2019")
.dataSet(@[@31,@22,@33,@54,@35,@36,@27,@38,@39]),
AAObject(AASeriesElement)
.nameSet(@"2020")
.dataSet(@[@21,@22,@53,@24,@65,@26,@37,@28,@49]),
])
;</code></pre>
4.繪制圖形
[chartView aa_drawChartWithChartModel:chartModel];//圖表視圖對象調用圖表模型對象,繪制最終圖形
AAChartModel一些重要屬性經過配置之后的圖形示例如下
- 常規折線圖

IMG_1867.JPG
- 常規柱形圖

IMG_1873.JPG
- y 軸翻轉的堆積曲線填充圖

IMG_1871.JPG
- x 軸翻轉的堆積曲線填充圖

IMG_1869.JPG
- x 軸翻轉的百分比堆積曲線填充圖

IMG_1863.JPG
- 輻射化堆積折線填充圖

IMG_1870.JPG
- 輻射化百分比堆積折線填充圖

IMG_1868.JPG
- 頭部為橢圓形的百分比堆積柱形圖

IMG_1866.JPG
- 頭部為楔形的百分比堆積條形圖

IMG_1865.JPG
AAChartModel 屬性配置列表
AAPropStatementAndFuncStatement(copy, AAChartModel, NSString , title);//標題內容
AAPropStatementAndFuncStatement(copy, AAChartModel, NSString , subtitle);//副標題內容
AAPropStatementAndFuncStatement(copy, AAChartModel, NSString , chartType);//圖表類型
AAPropStatementAndFuncStatement(copy, AAChartModel, NSString , stacking);//堆積樣式
AAPropStatementAndFuncStatement(copy, AAChartModel, NSString , symbol);//曲線點類型:"circle", "square", "diamond", "triangle","triangle-down",默認是"circle"
AAPropStatementAndFuncStatement(copy, AAChartModel, NSString , zoomType);//縮放類型
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, inverted);//x 軸是否垂直
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, xAxisReversed);// x 軸翻轉
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, yAxisReversed);//y 軸翻轉
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, crosshairs);//是否顯示準星線(默認顯示)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, gradientColorEnable);//是否要為漸變色
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, polar);//是否極化圖形(變為雷達圖)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, dataLabelEnabled);//是否顯示數據
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, xAxisLabelsEnabled);//x軸是否顯示數據
AAPropStatementAndFuncStatement(strong, AAChartModel, NSArray , categories);//圖表橫坐標每個點對應的名稱
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber , xAxisGridLineWidth);//x軸網格線的寬度
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, yAxisLabelsEnabled);//y軸是否顯示數據
AAPropStatementAndFuncStatement(copy, AAChartModel, NSString , yAxisTitle);//y軸標題
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber , yAxisGridLineWidth);//y軸網格線的寬度
AAPropStatementAndFuncStatement(strong, AAChartModel, NSArray , colorsTheme);//圖表主題顏色數組
AAPropStatementAndFuncStatement(strong, AAChartModel, NSArray , series);
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, legendEnabled);//是否顯示圖例
AAPropStatementAndFuncStatement(copy, AAChartModel , NSString , legendLayout);
AAPropStatementAndFuncStatement(copy, AAChartModel , NSString , legendAlign);
AAPropStatementAndFuncStatement(copy, AAChartModel , NSString *, legendVerticalAlign);
AAPropStatementAndFuncStatement(copy, AAChartModel, NSString , backgroundColor);//圖表背景色
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL, options3dEnable);//是否3D化圖形(僅對條形圖,柱狀圖有效)
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber , options3dAlpha);
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber , options3dBeta);
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber , options3dDepth);//3D圖形深度
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber , borderRadius);//柱狀圖長條圖頭部圓角半徑(可用于設置頭部的形狀)
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber , markerRadius);//折線連接點的半徑長度</code></pre>
更多圖形效果

AAChartKit功能演示.gif
項目主頁: http://www.baiduhome.net/lib/view/home/1490081257158