Swift - 第三方图表库AAInfographics使用详解7(饼图、扇形图)
一、饼图
1,基本用法
(1)下面我们使用 AAInfographics 来显示一个简单的饼图,效果如下:
- 整个饼图使用不同的颜色和扇区来展示不同的数据。
- 图表展示时会有动画效果,默认效果是顺时针展开显示。
- 点击某个扇区时,会有选中效果,并出现浮动提示框显示相关数据。
- 点击某个图例可以隐藏、显示该图例对应扇区的数据。
(2)样例代码
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 初始化图表视图控件 let chartWidth = self.view.frame.size.width let chartHeight = self.view.frame.size.height - 150 let aaChartView = AAChartView() aaChartView.frame = CGRect(x:0, y:0, width:chartWidth, height:chartHeight) self.view.addSubview(aaChartView) // 初始化图表模型 let chartModel = AAChartModel() .chartType(.pie) //图表类型 .title("编程语言统计")//图表主标题 .subtitle("2020年09月")//图表副标题 .inverted(false)//是否翻转图形 .dataLabelEnabled(true)//是否直接显示扇形图数据 .series( [ AASeriesElement() .name("使用人数") .allowPointSelect(false) .data([ ["Java" ,67], ["Swift",333], ["Python",83], ["OC" ,11], ["Go" ,30], ]) .toDic()!, ] ) // 图表视图对象调用图表模型对象,绘制最终图形 aaChartView.aa_drawChartWithChartModel(chartModel) } }
2,设置内部圆环半径大小占比
内部圆环半径大小占比 = 内部圆环半径 / 扇形图半径
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 初始化图表视图控件 let chartWidth = self.view.frame.size.width let chartHeight = self.view.frame.size.height - 150 let aaChartView = AAChartView() aaChartView.frame = CGRect(x:0, y:0, width:chartWidth, height:chartHeight) self.view.addSubview(aaChartView) // 初始化图表模型 let chartModel = AAChartModel() .chartType(.pie) //图表类型 .title("编程语言统计")//图表主标题 .subtitle("2020年09月")//图表副标题 .inverted(false)//是否翻转图形 .dataLabelEnabled(true)//是否直接显示扇形图数据 .series( [ AASeriesElement() .name("使用人数") .innerSize("30%")//内部圆环半径大小占比 .allowPointSelect(false) .data([ ["Java" ,67], ["Swift",333], ["Python",83], ["OC" ,11], ["Go" ,30], ]) .toDic()!, ] ) // 图表视图对象调用图表模型对象,绘制最终图形 aaChartView.aa_drawChartWithChartModel(chartModel) } }
3,设置描边宽度
每个扇区的描边宽度也可以理解为各个扇区见的间隔宽度。
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 初始化图表视图控件 let chartWidth = self.view.frame.size.width let chartHeight = self.view.frame.size.height - 150 let aaChartView = AAChartView() aaChartView.frame = CGRect(x:0, y:0, width:chartWidth, height:chartHeight) self.view.addSubview(aaChartView) // 初始化图表模型 let chartModel = AAChartModel() .chartType(.pie) //图表类型 .title("编程语言统计")//图表主标题 .subtitle("2020年09月")//图表副标题 .inverted(false)//是否翻转图形 .dataLabelEnabled(true)//是否直接显示扇形图数据 .series( [ AASeriesElement() .name("使用人数") .borderWidth(3) //描边宽度 .allowPointSelect(false) .data([ ["Java" ,67], ["Swift",333], ["Python",83], ["OC" ,11], ["Go" ,30], ]) .toDic()!, ] ) // 图表视图对象调用图表模型对象,绘制最终图形 aaChartView.aa_drawChartWithChartModel(chartModel) } }