English Document 🇬 🇧 | Simplified Chinese 🇨🇳 | Traditional Chinese document 🇭🇰

Your favoriteAAChartKitOpen source chart libraries are now availableswiftVersion is available, please click the link below for details

portal

Github.com/AAChartMode…

preface

The AAChartKit project, the Objective-C version of AAInfographics, is an object-oriented, easy-to-use, extremely elegant charting control package based on the popular open source front-end charting library Highcharts. Probably the most sophisticated third-party iOS open source graphic library on the planet (✟ I swear to God I’m an atheist 🖐, I’m not talking crap ✟)

features


  1. Environment friendly, strong compatibilityThe adapteriOS 6 +To supportARCTo supportObjective-CLanguage, simple configuration. There is also a Swift versionAAInfographicsAvailable for use.
  2. Powerful function, diverse typesSupport the.A histogramThe bar chartThe line chartThe graphPolyline filling diagramCurve filling diagram,Radar map,A map,The pie chart,Bubble chart,A scatter diagram,Area map,Histogram range diagram,Area scale map,Average plot of area range,Straight line chart,Straight line filling diagram,boxplot,The waterfall figure,Heat map,The sankey diagram,Pyramid figure,Funnel figure, and so on more than 20 types of graphics, not too many.
  3. Interactive graphic animation. Has a clear and detailed way of user interaction, at the same time, graphics renderinganimationThe effect is exquisite and smooth. There are more than 30 kinds of rendering animation effects to choose from. Users can set the animation time and animation type when rendering graphics freely. For the animation type of graphics rendering, please refer to the detailsAAChartKit Animation type.
  4. Support gesture zooming: supports gesture zooming and dragging to view charts. For details about gesture zooming types, see AAChartKit gesture zooming type. Gesture zooming is disabled by default.
  5. minimalism. AAChartView + AAChartModel = ChartIn theAAChartKitIn the chart framework, follow this minimalist formula:Chart View control + Chart model = the chart you want. With another powerful and beautiful chart libraryAAInfographicsExactly the same.
  6. Chained programming syntaxThe support classMasonry Chained programming syntax, one line of code can be configuredAAChartModelModel object instance.
  7. Simple and clear, light and easy to use.At the very leastFive lines of codeThe entire diagram is drawn (using chained programming syntax configuration)AAChartModelWhen instantiating an object, however many lines of code you write, it is theoretically only one line). 😜 😜 😜

Most real machine

The Chart shows that Column Range Chart Indicates the Column Range Chart Area Chart Indicates the Area filling diagram
The Chart shows the Line Chart Step Area Chart Straight line filling diagram 例 句 : The Chart shows the lines in a straight Line
According to the Spline Chart Areaspline Chart curve filling diagram Stacked Polar Chart Indicates the Stacked figure

Method of use

The preparatory work

  1. The projectDemoFolder inAAChartKitLibDrag into the desired item.
  2. In your project.pchGlobal macro definition file
#import "AAGlobalMacro.h"Copy the code

The official start of the

  1. Add it to your view controller file
#import "AAChartKit.h"Copy the code
  1. Create a viewAAChartView
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); / / / / disable AAChartView scrolling effect (the default can not help with) / / self. AAChartView. ScrollEnabled = NO; / / / / set chart view the contents of the height of the same height) of the (default contentHeight and AAChartView / / _aaChartView contentHeight = chartViewHeight; [self.view addSubview:_aaChartView];Copy the code
  1. Configuring the View modelAAChartModel
AAChartModel * AAChartModel = AAObject(AAChartModel). ChartTypeSet (AAChartTypeColumn)// Set the type of the chart. Heat. TitleSet (@ "programming language") / / set the chart title. SubtitleSet (@ "dummy data"). / / set chart subtitle categoriesSet (@ [@ "Java," @ "Swift" @ "Python," @ "Ruby", @ "PHP" @ "Go," @ "C," @ "C #" @ "C + +"] / / chart. The content of the horizontal axis yAxisTitleSet (@ "C")/y/set chart units. SeriesSet (@ [AAObject (AASeriesElement) NameSet (@ "2017"). The 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"). The 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"). The 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"). The 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]),]);Copy the code
  1. Draw graphics (createAAChartViewCall this method the first time you draw a graph after instantiating an object.)
/ * diagram view object call graph model object, draw up the final graph * / [_aaChartView aa_drawChartWithChartModel: aaChartModel];Copy the code
  1. Refresh only the data of the graph (recommended for dynamic data update operations)
/* Dynamically refresh the chart */ [_aaChartView when updating only the series property of the AAChartModel object aa_onlyRefreshTheChartDataWithChartModelSeries:aaChartModelSeriesArray];Copy the code
  1. Refresh graph except data attributesseriesOther attributes (You are advised to call this method when you refresh the attributes of a graph after the graph is drawn for the first time. Note: You are advised to use this method only when you refresh graph dataaa_onlyRefreshTheChartDataWithChartModelSeriesMethods)
/ * update AAChartModel content, refresh chart * / [_aaChartView aa_refreshChartWithChartModel: AAChartModel];Copy the code

AAChartModelA graphical example of some important properties configured is shown below

  • It’s a line chart

  • The column chart shows that

  • It can be seen from the chart

  • Special area chart one – Filling diagram of broken line area

  • Special area chart two – Filling diagram of curve area with negative numbers

  • Special area chart three – Filling diagram of broken line area in stacking state

  • Radar chart – Shows multiple sets of data

  • A polar chart

  • Pie chart (chart)

  • As we can see from the bubble chart

  • Scatter chart – Scatter chart

  • Arearange chart – arearange filling diagram

  • Step area chart – Straight square area filling diagram

  • Mixed chart – Mixed graph (line chart & bar range chart)

More Graphic Effects

Note: the following DEMO shows a GIF with a size of about 6M. If the dynamic effect is not displayed, it indicates that the image resources are not fully loaded. Please wait patiently until the image resource content is fully loaded, then you can finally watch more dynamic demonstration effect of the project.

Special instructions

Special type chart configuration

Fan chart and bubble chart in AAChartKit are all classified as special types, so if you want to draw fan chart and bubble chart, the setting of chart model AAChartModel is slightly different, as shown in the following example

  • To draw a pie chart, you need to configure the model like thisAAChartModel
AAChartModel *chartModel= AAObject(AAChartModel).charttypeset (AAChartTypePie).titleset (@" Programming language heat ") .subtitleset (@" virtual data ").datalabelEnabledSet (true)// Whether to directly display sector data. YAxisTitleSet (@" degrees ").seriesset ( @ [AAObject (AASeriesElement). NameSet (@ "heat of language"). The dataSet (@ [@ [@ "Java," @ 67], @ 44], [@ "Swift" @ @ @ "Python", @ 83], @[@"OC" , @11], @[@"Ruby" , @42], @[@"PHP" , @31], @[@"Go" , @63], @[@"C" , @24], @[@"C#" , @888], @[@"C++" , @66], ]), ]);Copy the code
  • To draw a bubble map, you need to configure the model like thisAAChartModel
AAChartModel *chartModel= AAObject(AAChartModel).charttypeset (AAChartTypeBubble).titleset (@" programming language heat ") .subtitleset (@" virtual data ").yaxisTitleset (@" Celsius ").seriesSet(@[AAObject(AASeriesElement).nameset (@"2017")).dataset (@ [ @ [@ 97, 36, @ @ 79], @ [60] @ 94, @ 74, @, @ [58] @ 68, @ 76, @, @ [56] @ 64, @ 87, @, @ [@ 68, 27, @ @ 73], @ [42] @ 74, @ 99, @, @ [@ 7, @ 93, @ @ 87], [40] @ 51, @ 69, @, @ [33] 23, 38, @ @ @, @ [@ @ 57, @ 86, 31]]). AAObject(AASeriesElement) .nameSet(@"2018") .dataSet( @[ @[@25, @10, @87], @[@2, @75, @59], @[@11, @54, @8 ], @[@86, 55, @ @ 93], @ [58] @ 5, @ 3, @, @ [44] @ 90, @ 63, @, @ [17] @ 91, 33 @ @, @ [56] @ 97, @ 3, @, @ [48] 15, @ @ 67, @, @ [25, 54, @ @ @ 81]]), AAObject(AASeriesElement) .nameSet(@"2019") .dataSet( @[ @[@47, @47, @21], @[@20, @12, @4 ], @[@6, @76, @91], @[@38, 60], 30, @ @ @ [57, @ @ 98, @ 64], @ [@ 61, @ 17, @ 80], @ [13] @ 83, 60, @ @, @ [@ 67, @ 78, @ 75], @ [@ 64, @ 12, @ 10], @ [30, @ @ 77, @82]]),]);Copy the code

NOTE: For more types of special charts, see specialChartvc. m file in the AAChartKit project Demo. To view the file content details, click here. You can also choose to download the Demo after Xcode Check out AAChartKit’s specialChartvc. m

The following table describes more than 10 supported chart types

typedef NSString *AAChartType; UIKIT_EXTERN AAChartType const AAChartTypeColumn; // UIKIT_EXTERN AAChartType const AAChartTypeBar; // UIKIT_EXTERN AAChartType const AAChartTypeArea; UIKIT_EXTERN AAChartType const AAChartTypeAreaspline; UIKIT_EXTERN AAChartType const AAChartTypeLine; UIKIT_EXTERN AAChartType const AAChartTypeSpline; UIKIT_EXTERN AAChartType const AAChartTypeScatter; // UIKIT_EXTERN AAChartType const AAChartTypePie; // UIKIT_EXTERN AAChartType const AAChartTypeBubble; // UIKIT_EXTERN AAChartType const AAChartTypePyramid; // UIKIT_EXTERN AAChartType const AAChartTypeFunnel; // funnel map UIKIT_EXTERN AAChartType const AAChartTypeColumnrange; // UIKIT_EXTERN AAChartType const AAChartTypeArearange; // Area scope mapCopy the code

Currently, there are three supported gesture scaling types for charts, as described below

typedef NSString *AAChartZoomType; UIKIT_EXTERN AAChartZoomType const AAChartZoomTypeNone; UIKIT_EXTERN AAChartZoomType const AAChartZoomTypeX; UIKIT_EXTERN AAChartZoomType const AAChartZoomTypeY; UIKIT_EXTERN AAChartZoomType const AAChartZoomTypeXY; UIKIT_EXTERN AAChartZoomType const AAChartZoomTypeXY; // Supports scale scaling of chartsCopy the code

NOTE: For example, if you set the zoomType of AAChartModel to AAChartZoomTypeX and gestured to zoom in on the chart, you can use two Pointers to drag the chart left and right in the AAChartView area of the screen Can. At the same time, a button titled “Restore Zoom” will automatically appear in the upper right corner of the screen. Click “Restore zoom” and the size and position of the chart will return to the original style.

There are currently more than thirty supported diagram rendering animation types, as described below

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,
};
Copy the code

Here are ten of AAChartKit’s chart rendering animation types

Back Bounce Circ Cubic Elastic
Expo Quad Quart Quint Sine

AAChartModelProperty configuration List

AAPropSetFuncImplementation(AAChartModel, NSString *, title);//标题内容
AAPropSetFuncImplementation(AAChartModel, NSNumber *, titleFontSize);//Title label font size
AAPropSetFuncImplementation(AAChartModel, NSString *, titleFontWeight);//Title label font weight
AAPropSetFuncImplementation(AAChartModel, NSString *, titleFontColor);//Title label font color

AAPropSetFuncImplementation(AAChartModel, NSString *, subtitle);//副标题内容
AAPropSetFuncImplementation(AAChartModel, NSNumber *, subtitleFontSize);//Subtitle label font size
AAPropSetFuncImplementation(AAChartModel, NSString *, subtitleFontWeight);//Subtitle label font weight
AAPropSetFuncImplementation(AAChartModel, NSString *, subtitleFontColor);//Subtitle flabel font color

AAPropSetFuncImplementation(AAChartModel, NSArray  *, series);//图表的数据列内容
AAPropSetFuncImplementation(AAChartModel, NSArray  *, keys);//Key support

AAPropSetFuncImplementation(AAChartModel, AAChartSubtitleAlignType, subtitleAlign);//图表副标题文本水平对齐方式。可选的值有 “left”,”center“和“right”。 默认是:center.
AAPropSetFuncImplementation(AAChartModel, AAChartType,              chartType);//图表类型
AAPropSetFuncImplementation(AAChartModel, AAChartStackingType,      stacking);//堆积样式
AAPropSetFuncImplementation(AAChartModel, AAChartSymbolType,        symbol);//折线曲线连接点的类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
AAPropSetFuncImplementation(AAChartModel, AAChartSymbolStyleType,   symbolStyle);
AAPropSetFuncImplementation(AAChartModel, AAChartZoomType,          zoomType);//缩放类型 AAChartZoomTypeX 表示可沿着 x 轴进行手势缩放
AAPropSetFuncImplementation(AAChartModel, AAChartAnimation,         animationType);//设置图表的渲染动画类型

AAPropSetFuncImplementation(AAChartModel, NSNumber *, animationDuration);//设置图表的渲染动画时长(动画单位为毫秒)
AAPropSetFuncImplementation(AAChartModel, BOOL,       inverted);//x 轴是否垂直
AAPropSetFuncImplementation(AAChartModel, BOOL,       xAxisReversed);// x 轴翻转
AAPropSetFuncImplementation(AAChartModel, BOOL,       yAxisReversed);//y 轴翻转
AAPropSetFuncImplementation(AAChartModel, BOOL,       gradientColorEnabled);//是否要为渐变色
AAPropSetFuncImplementation(AAChartModel, BOOL,       polar);//是否极化图形(变为雷达图)
AAPropSetFuncImplementation(AAChartModel, BOOL,       dataLabelEnabled);//是否显示数据
AAPropSetFuncImplementation(AAChartModel, NSString *, dataLabelFontColor);//Datalabel font color
AAPropSetFuncImplementation(AAChartModel, NSNumber *, dataLabelFontSize);//Datalabel font size
AAPropSetFuncImplementation(AAChartModel, NSString *, dataLabelFontWeight);//Datalabel font weight

AAPropSetFuncImplementation(AAChartModel, BOOL,       xAxisLabelsEnabled);//x 轴是否显示数据
AAPropSetFuncImplementation(AAChartModel, NSNumber *, xAxisLabelsFontSize);//x-axis labels font size
AAPropSetFuncImplementation(AAChartModel, NSString *, xAxisLabelsFontWeight);//x-axis fonto weight
AAPropSetFuncImplementation(AAChartModel, NSString *, xAxisLabelsFontColor);//x-axis fonto color
AAPropSetFuncImplementation(AAChartModel, NSArray  *, categories);//图表横坐标每个点对应的名称
AAPropSetFuncImplementation(AAChartModel, NSNumber *, xAxisGridLineWidth);//x 轴网格线的宽度
AAPropSetFuncImplementation(AAChartModel, NSNumber *, xAxisTickInterval);//x轴刻度点间隔数(设置每隔几个点显示一个 X轴的内容)

AAPropSetFuncImplementation(AAChartModel, BOOL,       xAxisVisible);//x 轴是否可见(默认可见)
AAPropSetFuncImplementation(AAChartModel, BOOL,       yAxisVisible);//y 轴是否可见(默认可见)
AAPropSetFuncImplementation(AAChartModel, BOOL,       yAxisLabelsEnabled);//y 轴是否显示数据
AAPropSetFuncImplementation(AAChartModel, NSString *, yAxisTitle);//y 轴标题
AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisLabelsFontSize);//y-axis labels font size
AAPropSetFuncImplementation(AAChartModel, NSString *, yAxisLabelsFontWeight);//y-axis fonto weight
AAPropSetFuncImplementation(AAChartModel, NSString *, yAxisLabelsFontColor);//y-axis fonto color
AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisGridLineWidth);//y轴网格线的宽度
AAPropSetFuncImplementation(AAChartModel, NSArray     <NSString *>*, colorsTheme);//图表主题颜色数组
AAPropSetFuncImplementation(AAChartModel, NSString *, backgroundColor);//图表背景色(必须为十六进制的颜色色值如红色"#FF0000")

AAPropSetFuncImplementation(AAChartModel, BOOL,       tooltipEnabled);//是否显示浮动提示框(默认显示)
AAPropSetFuncImplementation(AAChartModel, NSString *, tooltipValueSuffix);//浮动提示框单位后缀
AAPropSetFuncImplementation(AAChartModel, NSString *, tooltipValueString);//Tooltip string
AAPropSetFuncImplementation(AAChartModel, BOOL,       tooltipCrosshairs);//是否显示准星线(默认显示)
AAPropSetFuncImplementation(AAChartModel, BOOL,       connectNulls);//设置折线是否断点重连(是否连接空值点)
AAPropSetFuncImplementation(AAChartModel, BOOL,       legendEnabled);//是否显示图例 lengend(图表底部可点按的圆点和文字)

AAPropSetFuncImplementation(AAChartModel, BOOL,       options3dEnabled);//是否 3D 化图形(仅对条形图,柱状图有效)
AAPropSetFuncImplementation(AAChartModel, NSNumber *, options3dAlpha);
AAPropSetFuncImplementation(AAChartModel, NSNumber *, options3dBeta);
AAPropSetFuncImplementation(AAChartModel, NSNumber *, options3dDepth);//3D 图形深度

AAPropSetFuncImplementation(AAChartModel, NSNumber *, borderRadius);//柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效)
AAPropSetFuncImplementation(AAChartModel, NSNumber *, markerRadius);//折线连接点的半径长度

AAPropSetFuncImplementation(AAChartModel, BOOL,       yAxisAllowDecimals);//是否允许 y 轴显示小数
AAPropSetFuncImplementation(AAChartModel, NSArray  *, yAxisPlotLines);//y 轴基线的配置
AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisMax);//y 轴最大值
AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisMin);//y 轴最小值(设置为0就不会有负数)
AAPropSetFuncImplementation(AAChartModel, NSArray  *, yAxisTickPositions);//自定义 y 轴坐标(如:[@(0), @(25), @(50), @(75) , (100)])
AAPropSetFuncImplementation(AAChartModel, NSString *, zoomResetButtonText); //String to display in 'zoom reset button"

Copy the code

The author

An An

"THE CODE IS FAR AWAY FROM THE BUG WITH THE ANIMAL PROTECTING" * % % % % * * ┏ - # # # # # # ┓ ┏ - # # ┓ * ┏ _ ┛ ┻ - ━ ┛ _ ┻ ━ ━ ┓ * ┃ ┃ * ┃ ━ ┃ * ┃ @ ^ @ ^ ┃ * ┃ ┃ * ┃ ┻ ┃ _ _ ┃ ┃ * * ┗ ━ ┓ ┏ ━ ┛ * ┃ ┃ beast god bless * ┃ ┃ never BUG! * ┃ ┗ ━ ━ ━ ┓ - | * ┃ ┣ ┓}}} * ┃ ┏ ┛ * ┗ ┓ & & & ┓ - ┏ & & & ┓ ┏ ┛ - | * ┃ ┫ ┫ ┃ ┫ ┫ * ┗ ┻ ┛ ┗ ┻ ┛ * * "the CODE IS FAR AWAY FROM BUG WITH THE ANIMAL PROTECTING"Copy the code

The source code ⛓

Language version The project name Source code link
Swift AAInfographics Github.com/AAChartMode…
Objective C AAChartKit Github.com/AAChartMode…

license

This project AAChartKit uses MIT LICENSE. For details, please click MIT LICENSE

contact


  • 🌕 🌖 🌗 🌘 🌕 🌕 🌖 🌗 🌘
  • If you have any problem with using it, please feel free to issue it to me on GitHub.
  • Making Issues: github.com/AAChartMode…

  • If you would like to participate in this open source project, you are also welcome to contact me at any time
  • Making: github.com/AAChartMode…
  • StackOverflow: stackoverflow.com/users/78425…
  • JianShu: www.jianshu.com/u/f1e6753d4…
  • SegmentFault: segmentfault.com/u/huanghunb…

P.S.

In the initial design of the AAChartKit package library, in order to improve the loading speed of.js files, the dependent.js files are placed locally. However, due to the many functions of this project, the volume of additional JavaScript file library placed in the local is relatively large. The total volume of all.js files in the entire AAJSFiles folder is about 250KB (of course, when the project is packaged as compressed. Ipa project installation package file, it is far smaller than this volume) For users who are more sensitive to the volume size, the following suggested alternatives can be used

  1. Delete in thisAAChartKitIn the project file,AAJSFilesUnder folder4item.jsThe following table lists the files to be deleted
  • AAHighchartsLib.js
  • AAHighchartsMore.js
  • AAHighcharts-3d.js
  • AAFunnel.js
  1. willAAChartView.htmlThe following contents of the file
<script src="AAHighchartsLib.js">
</script>
<script src="AAHighchartsMore.js">
</script>
<script src="AAHighcharts-3d.js">
</script>
<script src="AAFunnel.js">
</script>Copy the code

Replace with

<script src="https://img.hcharts.cn/highcharts/highcharts.js">
</script>
<script src="https://img.hcharts.cn/highcharts/highcharts-more.js">
</script>Copy the code

Can.

In this scheme, the.js dependency files that were originally loaded and placed locally are replaced by.js files placed on the network, which reduces the local file size, but may have a certain network delay (within 0.5s), so AAChartKit is recommended Users can choose whether to use this alternative solution according to their actual project development needs.

To-do list

  • Supports the user to add agent events after the graphics are loaded
  • Support graphical dynamic refresh of global content
  • Support graphics dynamic refresh of pure data(series)content
  • Support graphics real-time refresh pure data and dynamic scrolling
  • Support color layer gradient effect
  • Supports 3D graphics effects, only forA histogram,The bar chart,The pie chart,A scatter diagram,Bubble chartPart of the graph is valid
  • Support code coverage testing
  • Support the use ofCocoaPodsThe import
  • Support the use ofCarthageThe import
  • Supports landscape (full screen) effect
  • Support free graphics rendering animation
  • Support has rendered graphics to generate picture files
  • Support to generate picture files to save to the system album
  • Support user free configurationAAOptionsModel object properties
  • Support for graphic stacking
  • Supports graphic axis reversal
  • Support rendering scatter diagrams
  • Support for rendering histogram ranges
  • Support rendering area range map
  • Support rendering area range map
  • Support rendering polar maps
  • Support rendering broken line histograms
  • Support rendering line straight square fill map
  • Support rendering nightingale 🌹 rose chart
  • Support rendering of rectangular tree hierarchies
  • Support rendering of active scale meter diagrams
  • Support for adding click event callbacks to graphs