123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- //
- // AAChartModel.m
- // AAChartKit
- //
- // Created by An An on 17/1/20.
- // Copyright © 2017年 An An. All rights reserved.
- //*************** ...... SOURCE CODE ...... ***************
- //***...................................................***
- //*** https://github.com/AAChartModel/AAChartKit ***
- //*** https://github.com/AAChartModel/AAChartKit-Swift ***
- //***...................................................***
- //*************** ...... SOURCE CODE ...... ***************
- /*
-
- * -------------------------------------------------------------------------------
- *
- * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔
- *
- * Please contact me on GitHub,if there are any problems encountered in use.
- * GitHub Issues : https://github.com/AAChartModel/AAChartKit/issues
- * -------------------------------------------------------------------------------
- * And if you want to contribute for this project, please contact me as well
- * GitHub : https://github.com/AAChartModel
- * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
- * JianShu : http://www.jianshu.com/u/f1e6753d4254
- * SegmentFault : https://segmentfault.com/u/huanghunbieguan
- *
- * -------------------------------------------------------------------------------
-
- */
- #import "AAChartModel.h"
- AAChartType const AAChartTypeColumn = @"column";
- AAChartType const AAChartTypeBar = @"bar";
- AAChartType const AAChartTypeArea = @"area";
- AAChartType const AAChartTypeAreaspline = @"areaspline";
- AAChartType const AAChartTypeLine = @"line";
- AAChartType const AAChartTypeSpline = @"spline";
- AAChartType const AAChartTypeScatter = @"scatter";
- AAChartType const AAChartTypePie = @"pie";
- AAChartType const AAChartTypeBubble = @"bubble";
- AAChartType const AAChartTypePyramid = @"pyramid";
- AAChartType const AAChartTypeFunnel = @"funnel";
- AAChartType const AAChartTypeColumnrange = @"columnrange";
- AAChartType const AAChartTypeArearange = @"arearange";
- AAChartType const AAChartTypeAreasplinerange = @"areasplinerange";
- AAChartType const AAChartTypeBoxplot = @"boxplot";
- AAChartType const AAChartTypeWaterfall = @"waterfall";
- AAChartType const AAChartTypePolygon = @"polygon";
- AAChartSubtitleAlignType const AAChartSubtitleAlignTypeLeft = @"left";
- AAChartSubtitleAlignType const AAChartSubtitleAlignTypeCenter = @"center";
- AAChartSubtitleAlignType const AAChartSubtitleAlignTypeRight = @"right";
- AAChartZoomType const AAChartZoomTypeNone = @"none";
- AAChartZoomType const AAChartZoomTypeX = @"x";
- AAChartZoomType const AAChartZoomTypeY = @"y";
- AAChartZoomType const AAChartZoomTypeXY = @"xy";
- AAChartStackingType const AAChartStackingTypeFalse = @"";
- AAChartStackingType const AAChartStackingTypeNormal = @"normal";
- AAChartStackingType const AAChartStackingTypePercent = @"percent";
- AAChartSymbolType const AAChartSymbolTypeCircle = @"circle";
- AAChartSymbolType const AAChartSymbolTypeSquare = @"square";
- AAChartSymbolType const AAChartSymbolTypeDiamond = @"diamond";
- AAChartSymbolType const AAChartSymbolTypeTriangle = @"triangle";
- AAChartSymbolType const AAChartSymbolTypeTriangle_down = @"triangle-down";
- AAChartSymbolStyleType const AAChartSymbolStyleTypeDefault = @"default";
- AAChartSymbolStyleType const AAChartSymbolStyleTypeInnerBlank = @"innerBlank";
- AAChartSymbolStyleType const AAChartSymbolStyleTypeBorderBlank = @"borderBlank";
- AAChartFontWeightType const AAChartFontWeightTypeThin = @"thin";
- AAChartFontWeightType const AAChartFontWeightTypeRegular = @"regular";
- AAChartFontWeightType const AAChartFontWeightTypeBold = @"bold";
- AALineDashSyleType const AALineDashSyleTypeSolid = @"Solid";
- AALineDashSyleType const AALineDashSyleTypeShortDash = @"ShortDash";
- AALineDashSyleType const AALineDashSyleTypeShortDot = @"ShortDot";
- AALineDashSyleType const AALineDashSyleTypeShortDashDot = @"ShortDashDot";
- AALineDashSyleType const AALineDashSyleTypeShortDashDotDot = @"ShortDashDotDot";
- AALineDashSyleType const AALineDashSyleTypeDot = @"Dot";
- AALineDashSyleType const AALineDashSyleTypeDash = @"Dash";
- AALineDashSyleType const AALineDashSyleTypeLongDash = @"LongDash";
- AALineDashSyleType const AALineDashSyleTypeDashDot = @"DashDot";
- AALineDashSyleType const AALineDashSyleTypeLongDashDot = @"LongDashDot";
- AALineDashSyleType const AALineDashSyleTypeLongDashDotDot = @"LongDashDotDot";
- @implementation AAChartModel
- - (instancetype)init {
- self = [super init];
- if (self) {
- _chartType = AAChartTypeColumn;//默认图表类型为柱状图
- _animationType = AAChartAnimationLinear;//默认使用非easing.js中的'linear'线性渐变效果
- _animationDuration = @800;//默认动画时长为800毫秒
- _subtitleAlign = AAChartSubtitleAlignTypeLeft;//默认图表副标题居左显示
- _stacking = AAChartStackingTypeFalse;//默认不开启图表数据的堆积效果
- _zoomType = AAChartZoomTypeNone ;//默认禁用图表的手势缩放功能
- _colorsTheme = @[@"#1e90ff",@"#ef476f",@"#ffd066",@"#04d69f",@"#25547c",];//默认颜色主题
- _tooltipEnabled = YES;//默认启用浮动提示框
- // _tooltipCrosshairs = YES;//默认启用准星线
- _tooltipShared = YES;//默认多组数据共享一个浮动提示框
- _xAxisLabelsEnabled = YES;//默认显示 X轴坐标点文字
- _xAxisGridLineWidth = @0; //设置x轴分割线宽度为0个像素,即是隐藏 X轴分割线
- _xAxisTickInterval = @1; //x轴坐标点间隔数(默认是1)
- _xAxisVisible = YES;//x轴默认可见
- _yAxisVisible = YES;//y轴默认可见
- _yAxisLabelsEnabled = YES;
- _yAxisLineWidth = @0.5; //y轴轴线的宽度为1
- _yAxisGridLineWidth = @1; //y轴分割线线宽为一个像素
- _legendEnabled = YES;//默认显示图例(图表下方可点击的带有文字的小圆点)
- _borderRadius = @0; //柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效,设置为1000时,柱形图或者条形图头部为楔形)
- _markerRadius = @5; //折线连接点的半径长度,如果值设置为0,这样就相当于不显示了
- _yAxisAllowDecimals = YES;//默认y轴允许显示小数
- _zoomResetButtonText = @"恢复缩放";//恢复缩放按钮的标题文字
-
- _titleFontColor = @"#000000";//标题字体颜色为黑色
- _titleFontWeight = AAChartFontWeightTypeRegular;//常规字体
- _titleFontSize = @11;
- _subtitleFontColor = @"#000000";//副标题字体颜色为黑色
- _subtitleFontWeight = AAChartFontWeightTypeRegular;//常规字体
- _subtitleFontSize = @9;
- _dataLabelFontColor = @"#000000";//数据标签默认颜色为黑色
- _dataLabelFontWeight = AAChartFontWeightTypeBold;//图表的数据字体为粗体
- _dataLabelFontSize = @10;
- _xAxisLabelsFontSize = @11;//x轴字体大小
- _xAxisLabelsFontColor = @"#778899";//浅石板灰色字体
- _xAxisLabelsFontWeight = AAChartFontWeightTypeThin;//细体字
- _yAxisLabelsFontSize = @11;
- _yAxisLabelsFontColor = @"#778899";//浅石板灰色字体
- _yAxisLabelsFontWeight = AAChartFontWeightTypeThin;//细体字
- }
- return self;
- }
- AAPropSetFuncImplementation(AAChartModel, NSString *, title);//标题内容
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, titleFontSize);//Title label font size
- AAPropSetFuncImplementation(AAChartModel, NSString *, titleFontColor);//Title label font color
- AAPropSetFuncImplementation(AAChartModel, NSString *, titleFontWeight);//Title label font weight
- AAPropSetFuncImplementation(AAChartModel, NSString *, subtitle);//副标题内容
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, subtitleFontSize);//Subtitle label font size
- AAPropSetFuncImplementation(AAChartModel, NSString *, subtitleFontColor);//Subtitle label font color
- AAPropSetFuncImplementation(AAChartModel, NSString *, subtitleFontWeight);//Subtitle label font weight
- AAPropSetFuncImplementation(AAChartModel, NSString *, backgroundColor);//图表背景色(必须为十六进制的颜色色值如红色"#FF0000")
- AAPropSetFuncImplementation(AAChartModel, NSArray <NSString *>*, colorsTheme);//图表主题颜色数组
- AAPropSetFuncImplementation(AAChartModel, NSArray <NSString *>*, categories);//x轴坐标每个点对应的名称(注意:这个不是用来设置 X 轴的值,仅仅是用于设置 X 轴文字内容的而已)
- AAPropSetFuncImplementation(AAChartModel, NSArray *, series);//图表的数据列内容
- 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, 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, xAxisVisible);//x 轴是否可见(默认可见)
- AAPropSetFuncImplementation(AAChartModel, BOOL, xAxisReversed);// x 轴翻转,默认为否
- AAPropSetFuncImplementation(AAChartModel, BOOL, xAxisLabelsEnabled);//x 轴是否显示文字
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, xAxisLabelsFontSize);//x 轴文字字体大小
- AAPropSetFuncImplementation(AAChartModel, NSString *, xAxisLabelsFontColor);//x 轴文字字体颜色
- AAPropSetFuncImplementation(AAChartModel, AAChartFontWeightType, xAxisLabelsFontWeight);//x 轴文字字体粗细
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, xAxisGridLineWidth);//x 轴网格线的宽度
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, xAxisTickInterval);//x轴刻度点间隔数(设置每隔几个点显示一个 X轴的内容)
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, xAxisCrosshairWidth);
- AAPropSetFuncImplementation(AAChartModel, NSString *, xAxisCrosshairColor);
- AAPropSetFuncImplementation(AAChartModel, AALineDashSyleType, xAxisCrosshairDashStyleType);
- AAPropSetFuncImplementation(AAChartModel, BOOL, yAxisVisible);//y 轴是否可见(默认可见)
- AAPropSetFuncImplementation(AAChartModel, BOOL, yAxisReversed);//y 轴翻转,默认为否
- AAPropSetFuncImplementation(AAChartModel, BOOL, yAxisLabelsEnabled);//y 轴是否显示文字
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisLabelsFontSize);//y 轴文字字体大小
- AAPropSetFuncImplementation(AAChartModel, NSString *, yAxisLabelsFontColor);//y 轴文字字体颜色
- AAPropSetFuncImplementation(AAChartModel, AAChartFontWeightType , yAxisLabelsFontWeight);//y 轴文字字体粗细
- AAPropSetFuncImplementation(AAChartModel, NSString *, yAxisTitle);//y 轴标题
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisLineWidth);//y y-axis line width
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisGridLineWidth);//y轴网格线的宽度
- AAPropSetFuncImplementation(AAChartModel, BOOL, yAxisAllowDecimals);//是否允许 y 轴显示小数
- AAPropSetFuncImplementation(AAChartModel, NSArray *, yAxisPlotLines);//y 轴基线的配置
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisMax);//y 轴最大值
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisMin);//y 轴最小值(设置为0就不会有负数)
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisTickInterval);
- AAPropSetFuncImplementation(AAChartModel, NSArray *, yAxisTickPositions);//自定义 y 轴坐标(如:[@(0), @(25), @(50), @(75) , (100)])
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, yAxisCrosshairWidth);
- AAPropSetFuncImplementation(AAChartModel, NSString *, yAxisCrosshairColor);
- AAPropSetFuncImplementation(AAChartModel, AALineDashSyleType, yAxisCrosshairDashStyleType);
- AAPropSetFuncImplementation(AAChartModel, BOOL, tooltipEnabled);//是否显示浮动提示框(默认显示)
- AAPropSetFuncImplementation(AAChartModel, BOOL, tooltipShared)//是否多组数据共享一个浮动提示框
- AAPropSetFuncImplementation(AAChartModel, NSString *, tooltipValueSuffix);//浮动提示框单位后缀
- AAPropSetFuncImplementation(AAChartModel, BOOL, connectNulls);//设置折线是否断点重连(是否连接空值点)
- AAPropSetFuncImplementation(AAChartModel, BOOL, legendEnabled);//是否显示图例 lengend(图表底部可点按的圆点和文字)
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, borderRadius);//柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效)
- AAPropSetFuncImplementation(AAChartModel, NSNumber *, markerRadius);//折线连接点的半径长度
- AAPropSetFuncImplementation(AAChartModel, NSString *, zoomResetButtonText); //String to display in 'zoom reset button"
- @end
|