iOS圖表框架 AAChartKit ---?????? 強大呀袱、精美、易用的開源iOS圖表

AAChartKit-s.png

您所喜愛的 AAChartKit 開源圖表框架現(xiàn)在更有swift版本可供使用,詳情請點擊以下鏈接

傳送門

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

?????? 溫馨提示: 請盡量不要在簡書的評論區(qū)中提問,尤其不要在簡書的私信區(qū)提問, 我很少能在簡書的評論區(qū)和私信中及時回答并解決 AAChartKit 的相關(guān)問題. 有 AAChartKit 使用上的問題可以直接進入 AAChartKit 的 GitHub 主頁的 issues 專區(qū)提問, 這樣方便我集中管理 AAChartKit 的相關(guān)問題,也有益于后來者對于 AAChartKit 的理解和使用, AAChartKit 的 issues 專區(qū)傳送門 https://github.com/AAChartModel/AAChartKit/issues

前言

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

功能特性


  • ?? 環(huán)境友好,兼容性強. 適配 iOS 9 +, 支持iOS郑叠、 iPad OS压鉴、TV OSmacOS, 支持 Objective-C語言, 同時更有 Swift 語言版本 AAInfographics 锻拘、 Java 語言版本 AAChartCoreKotlin 語言版本 AAChartCore-Kotlin 可供使用, 配置導入工程簡單易操作. 支持的所有語言版本及連接,參見此列表.

  • ?? 功能強大,類型多樣 -. 支持柱狀圖 击蹲、條形圖 署拟、折線圖曲線圖 歌豺、折線填充圖 推穷、曲線填充圖雷達圖类咧、極地圖馒铃、扇形圖蟹腾、氣泡圖散點圖区宇、區(qū)域范圍圖娃殖、柱形范圍圖面積范圍圖议谷、面積范圍均線圖炉爆、直方折線圖直方折線填充圖卧晓、箱線圖芬首、瀑布圖熱力圖逼裆、捎羯裕基圖金字塔圖胜宇、漏斗圖耀怜、等二十幾種類型的圖形,不可謂之不多.

  • ?? 現(xiàn)代化聲明式語法. 與過往的命令式編程技巧不同, 在 AAChartKit 中繪制任意一款自定義圖表, 你完全無需關(guān)心撓人的內(nèi)在實現(xiàn)細節(jié). 描述你所要得到的, 你便得到你所描述的.

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

  • ?? 交互式圖形動畫 . 有著清晰和充滿細節(jié)的用戶交互方式, 與此同時, 圖形渲染動畫效果細膩精致, 流暢優(yōu)美. 有三十多種以上渲染動畫效果可供選擇, 用戶可自由設置渲染圖形時的動畫時間和動畫類型, 關(guān)于圖形渲染動畫類型,具體參見 AAChartKit 動畫類型.

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

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

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

  • ?? 交互事件回調(diào) 支持圖表的用戶點擊事件及單指滑動事件, 可在此基礎(chǔ)上實現(xiàn)雙表聯(lián)動乃至多表聯(lián)動,以及其他更多更復雜的自定義用戶交互效果.

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


真機美圖

常規(guī)柱狀圖 條形范圍圖 區(qū)域填充圖
chart
chart
chart
多組數(shù)據(jù)折線圖 直方折線填充圖 常規(guī)直方折線圖
chart
chart
chart
多彩的氣泡圖 面積范圍均線圖 雙Y軸混合圖
chart
chart
chart
常規(guī)曲線圖 曲線填充圖 堆積填充圖
chart
chart
chart
散點圖 箱線圖 鏡像圖
chart
chart
chart
因項目功能較多,文件較大,請移步至 GitHub 下載. 親愛的,如果您使用時,覺得滿意,請賞一顆星星?,您的鼓勵將是我繼續(xù)努力的一大動力 .

GitHub傳送門

https://github.com/AAChartModel/AAChartKit


使用前安裝

CocoaPods 安裝 (推薦)

  1. Podfile 中添加以下內(nèi)容
pod 'AAChartKit', :git => 'https://github.com/AAChartModel/AAChartKit.git'
  1. 執(zhí)行 pod installpod update安拟。

手動安裝

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

正式開始使用

  1. 在你的視圖控制器文件中添加
#import "AAChartKit.h"
  1. 創(chuàng)建視圖AAChartView
CGFloat chartViewWidth  = self.view.frame.size.width;
CGFloat chartViewHeight = self.view.frame.size.height-250;
self.aaChartView = [[AAChartView alloc]initWithFrame:CGRectMake(0, 60, chartViewWidth, chartViewHeight)];
////設置圖表視圖的內(nèi)容高度(默認 contentHeight 和 AAChartView 的高度相同)
//self.aaChartView.contentHeight = self.view.frame.size.height-250;
[self.view addSubview:self.aaChartView];
  1. 配置視圖模型AAChartModel
AAChartModel *aaChartModel= AAObject(AAChartModel)
.chartTypeSet(AAChartTypeArea)//設置圖表的類型(這里以設置的為折線面積圖為例)
.titleSet(@"編程語言熱度")//設置圖表標題
.subtitleSet(@"虛擬數(shù)據(jù)")//設置圖表副標題
.categoriesSet(@[@"Java",@"Swift",@"Python",@"Ruby", @"PHP",@"Go",@"C",@"C#",@"C++"])//圖表橫軸的內(nèi)容
.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. 繪制圖形(創(chuàng)建 AAChartView 實例對象后,首次繪制圖形調(diào)用此方法)
/*圖表視圖對象調(diào)用圖表模型對象,繪制最終圖形*/
[_aaChartView aa_drawChartWithChartModel:chartModel];

?????? 好了,至此,有關(guān)于繪制圖形的任務,一切皆已經(jīng)搞定!!! 你將得到你想要的任意圖形!!!

更新圖形內(nèi)容

如果你需要更新圖表內(nèi)容,你應該閱讀以下內(nèi)容,根據(jù)你的實際需要,選擇調(diào)用適合你的函數(shù)

  • 僅僅刷新圖形的數(shù)據(jù)(進行數(shù)據(jù)的動態(tài)更新操作時,建議使用此方法)
/*僅僅更新 AAChartModel 對象的 series 屬性時,動態(tài)刷新圖表*/
[_aaChartView aa_onlyRefreshTheChartDataWithChartModelSeries:aaChartModelSeriesArray];
  • 刷新圖形除數(shù)據(jù)屬性 series 以外的其他屬性(首次繪制圖形完成之后,后續(xù)刷新圖表的屬性均建議調(diào)用此方法 注意:僅僅刷新圖形數(shù)據(jù),則建議使用上面的??aa_onlyRefreshTheChartDataWithChartModelSeries方法)
/*更新 AAChartModel 內(nèi)容之后,刷新圖表*/
[_aaChartView aa_refreshChartWithChartModel:aaChartModel];

AAChartModel一些重要屬性經(jīng)過配置之后的圖形示例如下

  • line chart - 折線圖

LineChart.png
  • column chart - 柱形圖

ColumnChart.png
  • bar chart - 條形圖

BarChart.png
  • area spline range chart - 曲線區(qū)域范圍圖

AreaSplineRangeChart
  • special area chart one - 常規(guī)折線區(qū)域填充圖

AreaChart
  • special area chart two - 帶有負數(shù)的區(qū)域填充圖

AreaChartOne.png
  • special area chart three - 堆積效果的區(qū)域填充圖

AreaChartTwo.png
  • polar chart - 極地圖

PolarChart.png
  • radar chart - 雷達圖

RadarChart.png
  • pie chart - 扇形圖

PieChart.png
  • bubble chart - 氣泡圖

BubbleChart.png
  • scatter chart - 散點圖

ScatterChart.png
  • arearange chart - 區(qū)域范圍圖

ArearangeChart.png
  • step area chart - 直方折線填充圖

StepAreaChart.png
  • mixed chart - 混合圖形

MixedChart.png

更多圖形效果

AAChartKit-Live9.gif

特別說明

支持監(jiān)聽用戶點擊事件及單指滑動事件

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

 //設置 AAChartView 事件代理
 self.aaChartView.delegate = self;

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

在監(jiān)聽用戶交互事件時,獲取的事件信息AAMoveOverEventMessageModel共包含以下內(nèi)容

@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 函數(shù)來自定義 AATooltip視圖顯示效果

有時系統(tǒng)默認的 tooltip 浮動提示框的顯示效果無法滿足使用者的特殊自定義要求,此時可以通過添加 AATooltipheaderFormatpointFormat字符串屬性來自定義浮動提示框的顯示內(nèi)容,如仍舊不能滿足需求,更可以通過 AATooltipformatter 函數(shù)來實現(xiàn)視圖的特殊定制化
例如,如下配置 AATooltip 實例對象屬性

    /*Custom Tooltip Style --- 自定義圖表浮動提示框樣式及內(nèi)容*/
    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)//設置取值精確到小數(shù)點后幾位
    .backgroundColorSet(@"#000000")
    .borderColorSet(@"#000000")
    .styleSet((id)AAStyle.new
              .colorSet(@"#FFD700")
              .fontSizeSet(@"12px"))
    ;

即可完成圖表的浮動提示框的特殊定制化.得到的浮動提示框的視覺效果圖如下??


image.png
  • 如下配置 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")
    ;

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


image.png

支持添加值域分割功能

  • 添加值域分割顏色帶 plotBands ??

    image.png

  • 添加值域分割顏色線 plotLines ??

    image.png

  • 添加值域分割數(shù)據(jù)列分區(qū) zones ??

    image.png

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

typedef NSString *AAChartType;

AACHARTKIT_EXTERN AAChartType const AAChartTypeColumn;          //柱形圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeBar;             //條形圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeArea;            //折線區(qū)域填充圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeAreaspline;      //曲線區(qū)域填充圖
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;       //區(qū)域折線范圍圖
AACHARTKIT_EXTERN AAChartType const AAChartTypeAreasplinerange; //區(qū)域曲線范圍圖
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視圖區(qū)域進行 左右拖動 即可.同時屏幕的右上角會自動出現(xiàn)一個標題為 "恢復縮放" 的按鈕,點擊恢復縮放,圖表大小和位置將會回歸到原初的樣式.

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

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,
};

下面是其中幾個圖表渲染動畫的圖形示意,大家可以隨意感受一下

Back Bounce Circ Cubic Elastic
Expo Quad Quart Quint Sine

AAChartModel 屬性配置列表

AAPropStatementAndFuncStatement(copy,   AAChartModel, NSString *, title);//標題內(nèi)容
AAPropStatementAndFuncStatement(copy,   AAChartModel, NSString *, subtitle);//副標題內(nèi)容
AAPropStatementAndFuncStatement(strong, AAChartModel, NSArray  *, series);//圖表的數(shù)據(jù)列內(nèi)容

AAPropStatementAndFuncStatement(copy,   AAChartModel, AAChartSubtitleAlignType, subtitleAlign);//圖表副標題文本水平對齊方式盏求《蹲叮可選的值有 “l(fā)eft”,”center“和“right”碎罚。 默認是:center.
AAPropStatementAndFuncStatement(copy,   AAChartModel, AAChartType,              chartType);//圖表類型
AAPropStatementAndFuncStatement(copy,   AAChartModel, AAChartStackingType,      stacking);//堆積樣式
AAPropStatementAndFuncStatement(copy,   AAChartModel, AAChartSymbolType,        symbol);//折線曲線連接點的類型:"circle", "square", "diamond", "triangle","triangle-down"磅废,默認是"circle"
AAPropStatementAndFuncStatement(assign, AAChartModel, AAChartSymbolStyleType,   symbolStyle);
AAPropStatementAndFuncStatement(copy,   AAChartModel, AAChartZoomType,          zoomType);//縮放類型 AAChartZoomTypeX 表示可沿著 x 軸進行手勢縮放
AAPropStatementAndFuncStatement(assign, AAChartModel, AAChartAnimation,         animationType);//設置圖表的渲染動畫類型

AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber *, animationDuration);//設置圖表的渲染動畫時長
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       inverted);//x 軸是否垂直
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       xAxisReversed);// x 軸翻轉(zhuǎn)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       yAxisReversed);//y 軸翻轉(zhuǎn)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       gradientColorEnable);//是否要為漸變色
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       polar);//是否極化圖形(變?yōu)槔走_圖)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       dataLabelEnabled);//是否顯示數(shù)據(jù)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       xAxisLabelsEnabled);//x 軸是否顯示數(shù)據(jù)
AAPropStatementAndFuncStatement(strong, AAChartModel, NSArray  *, categories);//圖表橫坐標每個點對應的名稱
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber *, xAxisGridLineWidth);//x 軸網(wǎng)格線的寬度
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       xAxisVisible);//x 軸是否可見(默認可見)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       yAxisVisible);//y 軸是否可見(默認可見)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       yAxisLabelsEnabled);//y 軸是否顯示數(shù)據(jù)
AAPropStatementAndFuncStatement(copy,   AAChartModel, NSString *, yAxisTitle);//y 軸標題
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber *, yAxisGridLineWidth);//y軸網(wǎng)格線的寬度
AAPropStatementAndFuncStatement(strong, AAChartModel, NSArray     <NSString *>*, colorsTheme);//圖表主題顏色數(shù)組
AAPropStatementAndFuncStatement(copy,   AAChartModel, NSString *, backgroundColor);//圖表背景色(必須為十六進制的顏色色值如紅色"#FF0000")

AAPropStatementAndFuncStatement(copy,   AAChartModel, NSString *, tooltipValueSuffix);//浮動提示框單位后綴
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       tooltipCrosshairs);//是否顯示準星線(默認顯示)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       connectNulls);//設置折線是否斷點重連(是否連接空值點)
AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       legendEnabled);//是否顯示圖例 lengend(圖表底部可點按的圓點和文字)

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);//折線連接點的半徑長度

AAPropStatementAndFuncStatement(assign, AAChartModel, BOOL,       yAllowDecimals);//是否允許 y 軸顯示小數(shù)
AAPropStatementAndFuncStatement(strong, AAChartModel, NSArray  *, yPlotLines);//y 軸基線的配置
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber *, yMax);//y 軸最大值
AAPropStatementAndFuncStatement(strong, AAChartModel, NSNumber *, yMin);//y 軸最小值(設置為0就不會有負數(shù))
AAPropStatementAndFuncStatement(strong, AAChartModel, NSArray  *, yTickPositions);//自定義 y 軸坐標(如:[@(0), @(25), @(50), @(75) , (100)])

作者

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

許可證

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

聯(lián)系方式




特色功能清單

  • 支持圖形加載完成后用戶添加代理事件
  • 支持圖形動態(tài)刷新全局內(nèi)容
  • 支持圖形動態(tài)刷新純數(shù)據(jù)(series)內(nèi)容
  • 支持圖形實時刷新純數(shù)據(jù)并動態(tài)滾動
  • 支持色彩圖層漸變效果
  • 支持3D圖形效果,僅對柱狀圖荆烈、條形圖拯勉、扇形圖散點圖憔购、氣泡圖等部分圖形有效
  • 支持使用CocoaPods 導入
  • 支持使用Carthage 導入
  • 支持橫屏(全屏)效果
  • 支持自由設置圖形渲染動畫
  • 支持用戶自由配置AAOptions模型對象屬性
  • 支持圖形堆疊
  • 支持圖形坐標軸反轉(zhuǎn)
  • 支持渲染散點圖
  • 支持渲染柱形范圍圖
  • 支持渲染面積范圍圖
  • 支持渲染面積范圍均線圖
  • 支持渲染極地圖
  • 支持渲染折線直方圖
  • 支持渲染折線直方填充圖
  • 支持渲染南丁格爾??玫瑰圖
  • 支持渲染活動刻度儀表圖
  • 支持為圖形添加點擊事件回調(diào)
  • 支持代碼覆蓋率測試
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宫峦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子玫鸟,更是在濱河造成了極大的恐慌导绷,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屎飘,死亡現(xiàn)場離奇詭異妥曲,居然都是意外死亡贾费,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門檐盟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褂萧,“玉大人,你說我怎么就攤上這事遵堵∠溏瑁” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵陌宿,是天一觀的道長锡足。 經(jīng)常有香客問我,道長壳坪,這世上最難降的妖魔是什么舶得? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮爽蝴,結(jié)果婚禮上沐批,老公的妹妹穿的比我還像新娘。我一直安慰自己蝎亚,他們只是感情好九孩,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著发框,像睡著了一般躺彬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上梅惯,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天宪拥,我揣著相機與錄音,去河邊找鬼铣减。 笑死她君,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的葫哗。 我是一名探鬼主播缔刹,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼劣针!你這毒婦竟也來了桨螺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤酿秸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后魏烫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辣苏,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡肝箱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了稀蟋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煌张。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖退客,靈堂內(nèi)的尸體忽然破棺而出骏融,到底是詐尸還是另有隱情,我是刑警寧澤萌狂,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布档玻,位于F島的核電站,受9級特大地震影響茫藏,放射性物質(zhì)發(fā)生泄漏误趴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一务傲、第九天 我趴在偏房一處隱蔽的房頂上張望凉当。 院中可真熱鬧,春花似錦售葡、人聲如沸看杭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽楼雹。三九已至,卻和暖如春像寒,著一層夾襖步出監(jiān)牢的瞬間烘豹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工诺祸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留携悯,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓筷笨,卻偏偏與公主長得像憔鬼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胃夏,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評論 25 707
  • 微信:baccy1314 公眾號:早安收信人 1 20歲時轴或,考上大學,父母逢人便說仰禀,還希望她考不上呢照雁,這不一考上大...
    早安收信人閱讀 655評論 7 1
  • 公司:寧波大發(fā)化纖有限公司 姓名:馮玉停 期數(shù):六項精進224期感謝二組學員,234期感謝三組志工答恶,260期感謝一...
    塵埃wyzh閱讀 148評論 0 0
  • 我不需要你能多完美饺蚊,我只希望我們永遠不分開萍诱。
    良辰辰n閱讀 124評論 1 0