当前位置: > > > Swift - 第三方图表库AAInfographics使用详解7(饼图、扇形图)

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)
    }
}
评论0