Swift - 第三方图表库AAInfographics使用详解7(饼图、扇形图)
作者:hangge | 2019-02-20 08:10
一、饼图
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)
}
}
全部评论(0)