iOS開源:AAChartKit -一款極其精美的 iOS 開源圖表庫

tang1984027 7年前發布 | 20K 次閱讀 iOS開發 開源 移動開發

AAChartKit

AAChartKit項目,是在流行的開源前端圖表庫 Highcharts 的基礎上,封裝的面向對象的,一組簡單易用,極其精美的圖表繪制控件.

  1. 適配 iOS 8, 支持ARC,支持 OC語言,配置簡單.
  2. 功能強大,支持柱狀圖 條形圖 折線圖 填充圖 雷達圖等多種圖形
  3. 動畫效果細膩精致,流暢優美.
  4. 支持類 Masonry 鏈式編程語法

    親愛的,如果您使用時,覺得滿意,請賞一顆星星:sparkles:,您的鼓勵將是我繼續努力的一大動力 .

使用方法

準備工作

  1. 將項目demo中的文件夾 AAChartKitFiles 拖入到所需項目中.
  2. 在你的項目的 .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

 

 本文由用戶 tang1984027 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!