iOS 圖表框架 AAChartKit ---強大的高顏值數據可視化圖表框架,支持柱狀圖、條形圖、折線圖、曲線圖、折線填充圖、曲線填充圖、氣泡圖、扇形圖、環形圖、散點圖、雷達圖、混合圖

AAChartKit-LOGO

English Document 🇬🇧 | 簡體中文文檔 🇨🇳| 繁體中文文檔 🇭🇰

您所喜愛的 AAChartKit 開源圖表庫現在更有swift版本可供使用,詳情請點擊以下鏈接

傳送門

https://github.com/AAChartModel/AAChartKit-Swift

前言

AAChartKit 項目,是AAInfographicsObjective-C 語言版本,是在流行的開源前端圖表庫Highcharts的基礎上,封裝的面向對象的,一組簡單易用,極其精美的圖表繪製控件.可能是這個星球上 UI 最精緻的第三方 iOS 開源圖表庫了(✟我以無神論者的名義向上帝起誓🖐,我真的沒有在說鬼話✟)

## 功能特性


  • 🎂 環境友好,兼容性強. 適配 iOS 9 +, 支持iOSiPad OSTV OSmacOS, 支持 Objective-C語言, 同時更有 Swift 語言版本 AAInfographicsJava 語言版本 AAChartCoreKotlin 語言版本 AAChartCore-Kotlin 可供使用, 配置導入工程簡單易操作. 支持的所有語言版本及連接,參見此列表.

  • 🚀 功能強大,類型多樣 -. 支持柱狀圖條形圖折線圖曲線圖折線填充圖曲線填充圖雷達圖極地圖扇形圖氣泡圖散點圖區域範圍圖柱形範圍圖面積範圍圖面積範圍均線圖直方折線圖直方折線填充圖箱線圖瀑布圖熱力圖桑基圖金字塔圖漏斗圖、等二十幾種類型的圖形,不可謂之不多.

  • 📝 現代化聲明式語法. 與過往的命令式編程技巧不同, 在 AAChartKit 中繪製任意一款自定義圖表, 你完全無需關心撓人的內在實現細節. 描述你所要得到的, 你便得到你所描述的.

  • 🔬 細緻入微的用戶自定義功能. 基礎的主標題副標題X 軸Y 軸自不必談, 從縱橫的交互準星線、跟手的浮動提示框, 到切割數值的值域分割線值域分割顏色帶, 再到細小的線條類型,標記點樣式, 各種細微的圖形子組件, 應有盡有. 以至於不論是極簡、抽象的小清新風格, 還是紛繁複雜的嚴肅商業派頭, 均可完美駕馭.

  • 🎮 交互式圖形動畫 . 有着清晰和充滿細節的用戶交互方式, 與此同時, 圖形渲染動畫效果細膩精緻, 流暢優美. 有三十多種以上渲染動畫效果可供選擇, 用戶可自由設置渲染圖形時的動畫時間和動畫類型, 關於圖形渲染動畫類型,具體參見AAChartKit 動畫類型.

  • 🦋 極簡主義 . AAChartView + AAChartModel = Chart,在 AAChartKit 圖表框架當中,遵循這樣一個極簡主義公式:圖表視圖控件 + 圖表模型 = 你想要的圖表. 同另一款強大而又精美的圖表庫AAInfographics完全一致.

  • 鏈式編程語法 . 支持類 Masonry 鏈式編程語法, 一行代碼即可配置完成 AAChartModel模型對象實例.

  • 🎈 簡潔清晰,輕便易用 . 最少僅僅需要 五行代碼 即可完成整個圖表的繪製工作(使用鏈式編程語法配置 AAChartModel 實例對象時, 無論你寫多少行代碼, 理論上只能算作是一行). 🤪🤪🤪

  • 🖱 交互事件回調 支持圖表的用戶點擊事件及單指滑動事件, 可在此基礎上實現雙表聯動乃至多表聯動,以及其他更多更復雜的自定義用戶交互效果.

  • 👌 支持手勢縮放 . 支持各個方向的圖表手勢縮放和拖動閱覽, 手勢縮放類型具體參見AAChartKit 手勢縮放類型, 默認禁用手勢縮放功能.


真機美圖




使用前安裝

CocoaPods 安裝 (推薦)

  1. Podfile 中添加以下內容
pod 'AAChartKit', :git => 'https://github.com/AAChartModel/AAChartKit.git'
  1. 執行 pod installpod update

手動安裝

  1. 將項目Demo中的文件夾AAChartKitLib拖入到所需項目中.
  2. 在你的項目的 .pch 全局宏定義文件中添加
#import "AAGlobalMacro.h"

正式開始使用

  1. 在你的ViewController視圖控制器文件中添加
#import "AAChartKit.h"
  1. 創建視圖AAChartView
CGFloat chartViewWidth  = self.view.frame.size.width;
CGFloat chartViewHeight = self.view.frame.size.height-250;
_aaChartView = [[AAChartView alloc]init];
_aaChartView.frame = CGRectMake(0, 60, chartViewWidth, chartViewHeight);
////禁用 AAChartView 滾動效果(默認不禁用)
//self.aaChartView.scrollEnabled = NO;
////設置圖表視圖的內容高度(默認 contentHeight 和 AAChartView 的高度相同)
//_aaChartView.contentHeight = chartViewHeight;
[self.view addSubview:_aaChartView];
  1. 配置視圖模型AAChartModel
AAChartModel *aaChartModel= AAObject(AAChartModel)
.chartTypeSet(AAChartTypeArea)//設置圖表的類型(這裏以設置的爲折線面積圖爲例)
.titleSet(@"編程語言熱度")//設置圖表標題
.subtitleSet(@"虛擬數據")//設置圖表副標題
.categoriesSet(@[@"Java",@"Swift",@"Python",@"Ruby", @"PHP",@"Go",@"C",@"C#",@"C++"])//圖表橫軸的內容
.yAxisTitleSet(@"攝氏度")//設置圖表 y 軸的單位
.seriesSet(@[
        AAObject(AASeriesElement)
        .nameSet(@"2017")
        .dataSet(@[@7.0, @6.9, @9.5, @14.5, @18.2, @21.5, @25.2, @26.5, @23.3, @18.3, @13.9, @9.6]),
        AAObject(AASeriesElement)
        .nameSet(@"2018")
        .dataSet(@[@0.2, @0.8, @5.7, @11.3, @17.0, @22.0, @24.8, @24.1, @20.1, @14.1, @8.6, @2.5]),
        AAObject(AASeriesElement)
        .nameSet(@"2019")
        .dataSet(@[@0.9, @0.6, @3.5, @8.4, @13.5, @17.0, @18.6, @17.9, @14.3, @9.0, @3.9, @1.0]),
        AAObject(AASeriesElement)
        .nameSet(@"2020")
        .dataSet(@[@3.9, @4.2, @5.7, @8.5, @11.9, @15.2, @17.0, @16.6, @14.2, @10.3, @6.6, @4.8]),
                 ])
;
  1. 繪製圖形(創建 AAChartView 實例對象後,首次繪製圖形調用此方法)
/*圖表視圖對象調用圖表模型對象,繪製最終圖形*/
[_aaChartView aa_drawChartWithChartModel:aaChartModel];

🎉🎉🎉 好了,至此,有關於繪製圖形的任務,一切皆已經搞定!!! 你將得到你想要的任意圖形!!! 🌈🌈🌈

更新圖形內容

如果你需要更新圖表內容,你應該閱讀以下內容,根據你的實際需要,選擇調用適合你的函數

  • 僅僅刷新圖形的數據(進行數據的動態更新操作時,建議使用此方法)
/*僅僅更新 AAChartModel 對象的 series 屬性時,動態刷新圖表*/
[_aaChartView aa_onlyRefreshTheChartDataWithChartModelSeries:aaChartModelSeriesArray];
  • 刷新圖形除數據屬性 series 以外的其他屬性(首次繪製圖形完成之後,後續刷新圖表的屬性均建議調用此方法 注意:僅僅刷新圖形數據,則建議使用上面的👆aa_onlyRefreshTheChartDataWithChartModelSeries方法)
/*更新 AAChartModel 內容之後,刷新圖表*/
[_aaChartView aa_refreshChartWithChartModel:aaChartModel];

AAChartModel一些重要屬性經過配置之後的圖形示例如下

  • line chart - 折線圖

IMG_1867.JPG

  • column chart - 柱狀圖

IMG_1873.JPG

  •  bar chart - 條形圖

IMG_1880.JPG

  • special area chart one - 折線區域填充圖

IMG_1869.JPG

  • special area chart two - 帶有負數的曲線區域填充圖

IMG_1871.JPG

  • special area chart three - 堆積狀態的折線區域填充圖

IMG_1863.JPG

  • radar chart - 多組數據的雷達圖

IMG_1877.JPG

  • polar chart - 極地圖

IMG_1879.JPG

  • pie chart - 環形圖(中間爲空的扇形圖)

IMG_1878.JPG

  • bubble chart - 氣泡圖

IMG_1875.JPG

  • scatter chart - 散點圖

scatter chart

  • arearange chart - 區域範圍填充圖

arearange chart

  • step area chart - 直方區域填充圖

step area chart

  • mixed chart - 混合圖形(折線圖&柱形範圍圖)

mixed chart

更多圖形效果

注意:如下的這幅DEMO演示圖爲大小6M左右的GIF動態圖,如未顯示動態效果則說明圖片資源未全部加載。請耐心等待至圖片資源內容完全加載結束後,即可最終觀賞更多的項目的動態演示效果.

AAChartKit-Live

特別說明

支持監聽用戶點擊事件及單指滑動事件

可通過給 AAChartView 示例對象設置代理方法,來實現監聽用戶的點擊事件和單指滑動事件

 //設置 AAChartView 事件代理
 self.aaChartView.delegate = self;
 
 //支持用戶點擊事件
 self.aaChartModel.touchEventEnabledSet(true)

 //實現對 AAChartView 事件代理的監聽
 #pragma mark -- AAChartView delegate
 - (void)aaChartView:(AAChartView *)aaChartView moveOverEventWithMessage:(AAMoveOverEventMessageModel *)message {
 NSLog(@"🚀selected point series element name: %@",message.name);
 }

在監聽用戶交互事件時,獲取的事件信息AAMoveOverEventMessageModel共包含以下內容

@interface AAMoveOverEventMessageModel : NSObject

@property (nonatomic, copy)   NSString *name; 
@property (nonatomic, strong) NSNumber *x; 
@property (nonatomic, strong) NSNumber *y;
@property (nonatomic, copy)   NSString *category;
@property (nonatomic, strong) NSDictionary *offset;
@property (nonatomic, assign) NSUInteger index;

@end

支持通過JavaScript 函數來自定義 AATooltip視圖顯示效果

有時系統默認的 tooltip 浮動提示框的顯示效果無法滿足使用者的特殊自定義要求,此時可以通過添加 AATooltipheaderFormatpointFormat字符串屬性來自定義浮動提示框的顯示內容,如仍舊不能滿足需求,更可以通過 AATooltipformatter 函數來實現視圖的特殊定製化
例如

  • 如下配置 AATooltip 實例對象屬性
    /*Custom Tooltip Style --- 自定義圖表浮動提示框樣式及內容*/
    AATooltip *tooltip = aaOptions.tooltip;
    tooltip
    .useHTMLSet(true)
    .formatterSet(@AAJSFunc(function () {
        return ' 🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 <br/> '
        + ' Support JavaScript Function Just Right Now !!! <br/> '
        + ' The Gold Price For <b>2020 '
        +  this.x
        + ' </b> Is <b> '
        +  this.y
        + ' </b> Dollars ';
    }))
    .valueDecimalsSet(@2)//設置取值精確到小數點後幾位
    .backgroundColorSet(@"#000000")
    .borderColorSet(@"#000000")
    .styleSet((id)AAStyle.new
              .colorSet(@"#FFD700")
              .fontSizeSet(@"12px"))
    ;

得到的浮動提示框的視覺效果圖如下👇
Custom Tooltip Style

  • 如下配置 AATooltip 實例對象屬性
    aaOptions.tooltip
    .useHTMLSet(true)
    .formatterSet(@AAJSFunc(function () {
        let colorsArr = [];
        colorsArr.push("mediumspringgreen");
        colorsArr.push("deepskyblue");
        colorsArr.push("red");
        colorsArr.push("sandybrown");
        let wholeContentString ='<span style=\"' + 'color:lightGray; font-size:13px\"' + '>◉ Time: ' + this.x + ' year</span><br/>';
        for (let i = 0;i < 4;i++) {
            let thisPoint = this.points[i];
            let yValue = thisPoint.y;
            if (yValue != 0) {
                let spanStyleStartStr = '<span style=\"' + 'color:'+ colorsArr[i] + '; font-size:13px\"' + '>◉ ';
                let spanStyleEndStr = '</span> <br/>';
                wholeContentString += spanStyleStartStr + thisPoint.series.name + ': ' + thisPoint.y + '℃' + spanStyleEndStr;
            }
        }
        return wholeContentString;
    }))
    .backgroundColorSet(@"#050505")
    .borderColorSet(@"#050505")
    ;

得到的浮動提示框的視覺效果圖如下👇
colorfulTooltipChart

支持添加值域分割功能

  • 添加值域分割顏色帶 plotBands 🎀
    plotBandsChart

  • 添加值域分割顏色線 plotLines 🧶
    plotLinesChart

  • 添加值域分割數據列分區 zones 🧱
    seriesZonesChart

當前已支持的圖表類型有十種以上,說明如下

typedef NSString *AAChartType;

AACHARTKIT_EXTERN AAChartType const AAChartTypeColumn;          //柱形圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeBar;             //條形圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeArea;            //折線區域填充圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeAreaspline;      //曲線區域填充圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeLine;            //折線圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeSpline;          //曲線圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeScatter;         //散點圖
AACHARTKIT_EXTERN AAChartType const AAChartTypePie;             //扇形圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeBubble;          //氣泡圖
AACHARTKIT_EXTERN AAChartType const AAChartTypePyramid;         //金字塔圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeFunnel;          //漏斗圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeColumnrange;     //柱形範圍圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeArearange;       //區域折線範圍圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeAreasplinerange; //區域曲線範圍圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeBoxplot;         //箱線圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeWaterfall;       //瀑布圖
AACHARTKIT_EXTERN AAChartType const AAChartTypePolygon;         //多邊形圖

當前已支持的圖表手勢縮放類型共有三種,說明如下

typedef NSString *AAChartZoomType;

AACHARTKIT_EXTERN AAChartZoomType const AAChartZoomTypeNone; //禁用手勢縮放功能(默認禁用手勢縮放)
AACHARTKIT_EXTERN AAChartZoomType const AAChartZoomTypeX;    //支持圖表 X軸橫向縮放
AACHARTKIT_EXTERN AAChartZoomType const AAChartZoomTypeY;    //支持圖表 Y軸縱向縮放
AACHARTKIT_EXTERN AAChartZoomType const AAChartZoomTypeXY;   //支持圖表等比例縮放

NOTE:例如,設置了AAChartModel的縮放屬性zoomTypeAAChartZoomTypeX,並且將圖表進行了手勢放大之後,這時候如果想要左右滑動圖表,可以使用 雙指點按 屏幕中的AAChartView視圖區域進行 左右拖動 即可.同時屏幕的右上角會自動出現一個標題爲 "恢復縮放" 的按鈕,點擊恢復縮放,圖表大小和位置將會迴歸到原初的樣式.

當前已支持的圖表渲染動畫類型有三十種以上,說明如下

typedef NS_ENUM(NSInteger,AAChartAnimation) {
    AAChartAnimationLinear = 0,
    AAChartAnimationEaseInQuad,
    AAChartAnimationEaseOutQuad,
    AAChartAnimationEaseInOutQuad,
    AAChartAnimationEaseInCubic,
    AAChartAnimationEaseOutCubic,
    AAChartAnimationEaseInOutCubic,
    AAChartAnimationEaseInQuart,
    AAChartAnimationEaseOutQuart,
    AAChartAnimationEaseInOutQuart,
    AAChartAnimationEaseInQuint,
    AAChartAnimationEaseOutQuint,
    AAChartAnimationEaseInOutQuint,
    AAChartAnimationEaseInSine,
    AAChartAnimationEaseOutSine,
    AAChartAnimationEaseInOutSine,
    AAChartAnimationEaseInExpo,
    AAChartAnimationEaseOutExpo,
    AAChartAnimationEaseInOutExpo,
    AAChartAnimationEaseInCirc,
    AAChartAnimationEaseOutCirc,
    AAChartAnimationEaseInOutCirc,
    AAChartAnimationEaseOutBounce,
    AAChartAnimationEaseInBack,
    AAChartAnimationEaseOutBack,
    AAChartAnimationEaseInOutBack,
    AAChartAnimationElastic,
    AAChartAnimationSwingFromTo,
    AAChartAnimationSwingFrom,
    AAChartAnimationSwingTo,
    AAChartAnimationBounce,
    AAChartAnimationBouncePast,
    AAChartAnimationEaseFromTo,
    AAChartAnimationEaseFrom,
    AAChartAnimationEaseTo,
};

以下是AAChartKit其中十種圖表渲染動畫類型

Back Bounce Circ Cubic Elastic
Expo Quad Quart Quint Sine

AAChartModel 屬性配置列表

AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, title) //標題文本內容
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, titleFontSize) //標題字體尺寸大小
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, titleFontColor) //標題字體顏色
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, titleFontWeight) //標題字體粗細

AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, subtitle) //副標題文本內容
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, subtitleFontSize) //副標題字體尺寸大小
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, subtitleFontColor) //副標題字體顏色
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, subtitleFontWeight) //副標題字體粗細

AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, backgroundColor) //圖表背景色(必須爲十六進制的顏色色值如紅色"#FF0000")
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSArray     <NSString *>*, colorsTheme) //圖表主題顏色數組
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSArray     <NSString *>*, categories) //x軸座標每個點對應的名稱(注意:這個不是用來設置 X 軸的值,僅僅是用於設置 X 軸文字內容的而已)
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSArray  *, series) //圖表的數據列內容

AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, AAChartSubtitleAlignType, subtitleAlign) //圖表副標題文本水平對齊方式。可選的值有 “left”,”center“和“right”。 默認是:center.
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, AAChartType,              chartType) //圖表類型
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, AAChartStackingType,      stacking) //堆積樣式
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, AAChartSymbolType,        markerSymbol) //折線曲線連接點的類型:"circle", "square", "diamond", "triangle","triangle-down",默認是"circle"
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, AAChartSymbolStyleType,   markerSymbolStyle) 
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, AAChartZoomType,          zoomType) //縮放類型 AAChartZoomTypeX 表示可沿着 x 軸進行手勢縮放
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, AAChartAnimation,         animationType) //設置圖表的渲染動畫類型
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, animationDuration) //設置圖表的渲染動畫時長(動畫單位爲毫秒)

AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       inverted) //x 軸是否垂直,默認爲否
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       gradientColorsThemeEnabled) //是否將常規主題顏色數組 colorsTheme 自動轉換爲半透明漸變效果的顏色數組(設置後就不用自己再手動去寫漸變色字典,相當於是設置漸變色的一個快捷方式,當然了,如果需要細緻地自定義漸變色效果,還是需要自己手動配置漸變顏色字典內容,具體方法參見圖表示例中的`顏色漸變條形圖`示例代碼),默認爲否
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       polar) //是否極化圖形(變爲雷達圖),默認爲否

AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       dataLabelEnabled) //是否顯示數據,默認爲否
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, dataLabelFontColor) //Datalabel font color
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, dataLabelFontSize) //Datalabel font size
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, dataLabelFontWeight) //Datalabel font weight


AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       xAxisVisible) //x 軸是否可見(默認可見)
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       xAxisReversed) // x 軸翻轉,默認爲否

AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       xAxisLabelsEnabled) //x 軸是否顯示文字
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, xAxisLabelsFontSize) //x 軸文字字體大小
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, xAxisLabelsFontColor) //x 軸文字字體顏色
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, AAChartFontWeightType, xAxisLabelsFontWeight) //x 軸文字字體粗細

AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, xAxisGridLineWidth) //x 軸網格線的寬度
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, xAxisTickInterval) //x軸刻度點間隔數(設置每隔幾個點顯示一個 X軸的內容)

AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, xAxisCrosshairWidth) //設置 x 軸準星線的寬度
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, xAxisCrosshairColor) //設置 x 軸準星線的顏色
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, AALineDashSyleType,   xAxisCrosshairDashStyleType) //設置 x 軸準星線的線條樣式類型


AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       yAxisVisible) //y 軸是否可見(默認可見)
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       yAxisReversed) //y 軸翻轉,默認爲否

AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       yAxisLabelsEnabled) //y 軸是否顯示文字
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, yAxisLabelsFontSize) //y 軸文字字體大小
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, yAxisLabelsFontColor) //y 軸文字字體顏色
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, AAChartFontWeightType , yAxisLabelsFontWeight) //y 軸文字字體粗細

AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, yAxisTitle) //y 軸標題
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, yAxisLineWidth) //y y-axis line width
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, yAxisGridLineWidth) //y軸網格線的寬度
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       yAxisAllowDecimals) //是否允許 y 軸顯示小數
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSArray  *, yAxisPlotLines) //y 軸基線的配置
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, yAxisMax) //y 軸最大值
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, yAxisMin) //y 軸最小值(設置爲0就不會有負數)
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, yAxisTickInterval) 
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSArray  *, yAxisTickPositions) //自定義 y 軸座標(如:[@(0), @(25), @(50), @(75) , (100)])

AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, yAxisCrosshairWidth) //設置 y 軸準星線的寬度
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, yAxisCrosshairColor) //設置 y 軸準星線的顏色
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, AALineDashSyleType,   yAxisCrosshairDashStyleType) //設置 y 軸準星線的線條樣式類型


AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       tooltipEnabled) //是否顯示浮動提示框(默認顯示)
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       tooltipShared)//是否多組數據共享一個浮動提示框
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, tooltipValueSuffix) //浮動提示框單位後綴

AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       connectNulls) //設置折線是否斷點重連(是否連接空值點)
AAPropStatementAndPropSetFuncStatement(assign, AAChartModel, BOOL,       legendEnabled) //是否顯示圖例 lengend(圖表底部可點按的圓點和文字)
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, borderRadius) //柱狀圖長條圖頭部圓角半徑(可用於設置頭部的形狀,僅對條形圖,柱狀圖有效)
AAPropStatementAndPropSetFuncStatement(strong, AAChartModel, NSNumber *, markerRadius) //折線連接點的半徑長度
AAPropStatementAndPropSetFuncStatement(copy,   AAChartModel, NSString *, zoomResetButtonText)  //String to display in 'zoom reset button"

作者

An An

 "CODE IS FAR AWAY FROM BUG WITH THE ANIMAL PROTECTING"
 *          %%       %%
 *         ##       ##
 *       ┏-##┓   ┏-##┓
 *    ┏_┛ ┻---━┛_┻━━┓
 *    ┃           ┃     
 *    ┃   ━       ┃    
 *    ┃ @^   @^    ┃   
 *    ┃        ┃
 *    ┃   ┻    ┃
 *    ┃_      _┃
 *     ┗━┓   ┏━┛
 *      ┃   ┃神獸保佑
 *      ┃   ┃永無BUG!
 *      ┃   ┗━━━┓----|
 *      ┃         ┣┓}}}
 *      ┃         ┏┛
 *      ┗┓&&&┓-┏&&&┓┏┛-|
 *       ┃┫┫  ┃┫┫
 *       ┗┻┛  ┗┻┛
 *
 *
 "CODE IS FAR AWAY FROM BUG WITH THE ANIMAL PROTECTING"

源代碼

語言版本 項目名稱 適用平臺 源代碼鏈接
Swift AAInfographics iOS https://github.com/AAChartModel/AAChartKit-Swift
Objective C AAChartKit iOS https://github.com/AAChartModel/AAChartKit
Kotlin AAInfographics Android https://github.com/AAChartModel/AAChartCore-Kotlin
Java AAChartCore Android https://github.com/AAChartModel/AAChartCore

許可證

本項目 AAChartKit 使用 MIT許可證,詳情請點擊MIT LICENSE

待辦清單

  • [x] 支持圖形加載完成後用戶添加代理事件
  • [x] 支持圖形動態刷新全局內容
  • [x] 支持圖形動態刷新純數據(series)內容
  • [x] 支持圖形實時刷新純數據並動態滾動
  • [x] 支持色彩圖層漸變效果
  • [x] 支持3D圖形效果,僅對柱狀圖條形圖扇形圖散點圖氣泡圖等部分圖形有效
  • [x] 支持使用CocoaPods 導入
  • [ ] 支持使用Carthage 導入
  • [x] 支持橫屏(全屏)效果
  • [x] 支持自由設置圖形渲染動畫
  • [x] 支持用戶自由配置AAOptions模型對象屬性
  • [x] 支持圖形堆疊
  • [x] 支持圖形座標軸反轉
  • [x] 支持渲染散點圖
  • [x] 支持渲染柱形範圍圖
  • [x] 支持渲染面積範圍圖
  • [x] 支持渲染面積範圍均線圖
  • [x] 支持渲染極地圖
  • [x] 支持渲染折線直方圖
  • [x] 支持渲染折線直方填充圖
  • [x] 支持渲染南丁格爾🌹玫瑰圖
  • [x] 支持渲染活動刻度儀表圖
  • [x] 支持爲圖形添加點擊事件回調
  • [ ] 支持代碼覆蓋率測試
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章