返回 导航

Swift

hangge.com

Swift - 第三方图表库AAInfographics使用详解8(散点图、气泡图)

作者:hangge | 2019-02-22 08:20

一、散点图

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 - 200
        let aaChartView = AAChartView()
        aaChartView.frame = CGRect(x:0, y:0, width:chartWidth, height:chartHeight)
        self.view.addSubview(aaChartView)
        
        // 初始化图表模型
        let chartModel = AAChartModel()
            .chartType(.scatter) //图表类型
            .title("身高体重分布情况")//图表主标题
            .subtitle("2020年09月")//图表副标题
            .titleColor("#ffffff")//主标题文字颜色
            .subtitleColor("#ffffff")//副标题文字颜色
            .axisColor("#ffffff")//轴线颜色
            .yAxisTitle("kg")//Y轴标题
            .backgroundColor("#22324c") //背景颜色
            .dataLabelEnabled(false)
            .series(
                [
                    AASeriesElement()
                        .name("女性")
                        .color("rgba(223, 83, 83, 1)")
                        .data([
                            [161.2, 51.6], [167.5, 59.0], [159.5, 49.2], [157.0, 63.0],
                            [170.0, 59.0], [159.1, 47.6], [166.0, 69.8], [176.2, 66.8],
                            [172.5, 55.2], [170.9, 54.2], [172.9, 62.5], [153.4, 42.0],
                            [147.2, 49.8], [168.2, 49.2], [175.0, 73.2], [157.0, 47.8],
                            [159.5, 50.6], [175.0, 82.5], [166.8, 57.2], [176.5, 87.8],
                            [174.0, 54.5], [173.0, 59.8], [179.9, 67.3], [170.5, 67.8]
                            ])
                        .toDic()!,
                    AASeriesElement()
                        .name("男性")
                        .color("rgba(119, 152, 191, 1)")
                        .data([
                            [174.0, 65.6], [175.3, 71.8], [193.5, 80.7], [186.5, 72.6],
                            [181.5, 74.8], [184.0, 86.4], [184.5, 78.4], [175.0, 62.0],
                            [180.0, 76.6], [177.8, 83.6], [192.0, 90.0], [176.0, 74.6],
                            [184.0, 79.6], [192.7, 93.8], [171.5, 70.0], [173.0, 72.4],
                            [176.0, 78.8], [180.5, 77.8], [172.7, 66.2], [176.0, 86.4],
                            [178.0, 89.6], [180.3, 82.8], [180.3, 76.4], [164.5, 63.2]
                            ])
                        .toDic()!
                ])
        
        // 图表视图对象调用图表模型对象,绘制最终图形
        aaChartView.aa_drawChartWithChartModel(chartModel)
    }
}

2,修改散点的样式类型 

(1)散点有如下 5 种样式可以选择,如果不指定的话则每组数组依次使用各种样式。
  • circle:圆形
  • square:正方形
  • diamond:菱形
  • triangle:上三角形
  • triangle-down:下三角形

(2)下面将所有散点统一使用三角形:
let chartModel = AAChartModel()
    .chartType(.scatter) //图表类型
    .symbol(.triangle)//散点形状
    //.....

3,修改散点的空心样式

(1)使用 symbolStyle 可以设置散点的空心样式,有如下三种可选值:
  • none:内部和边框均为实心(默认值)
  • borderBlank:边框空心
  • innerBlank:内部空心

(2)下面分别是 borderBlankinnerBlank 的效果:
              
let chartModel = AAChartModel()
    .chartType(.scatter) //图表类型
    .symbol(.circle)//散点形状
    .symbolStyle(.borderBlank)//连接点边框空心
    //.....

4,修改散点半径 

markerRadius 可以设置散点半径:
let chartModel = AAChartModel()
    .chartType(.scatter) //图表类型
    .symbol(.circle)//散点形状
    .symbolStyle(.innerBlank)//散点内部空心 
    .markerRadius(9)//散点半径
    //.....

二、气泡图

1,效果图

气泡图和散点图很像,不同的是气泡图的每个数据又多了个 size 属性,该属性决定每个气泡相对大小。效果如下:
  • 整个散点图一共展示两组数据(两个系列数据),每组数据使用不同的颜色和图例区分。
  • 图表展示时会有动画效果,默认效果是气泡逐渐从小变大显示出来。
  • 点击某个气泡时,会出现浮动提示框显示相关数据。
  • 点击某个图例可以隐藏、显示该图例对应系列的数据。
           

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 - 200
        let aaChartView = AAChartView()
        aaChartView.frame = CGRect(x:0, y:0, width:chartWidth, height:chartHeight)
        self.view.addSubview(aaChartView)
        
        // 初始化图表模型
        let chartModel = AAChartModel()
            .chartType(.bubble) //图表类型
            .title("气泡图")//图表主标题
            .titleColor("#ffffff")//主标题文字颜色
            .subtitleColor("#ffffff")//副标题文字颜色
            .axisColor("#ffffff")//轴线颜色
            .backgroundColor("#22324c") //背景颜色
            .colorsTheme(["#0c9674","#7dffc0"])
            .series(
                [
                    AASeriesElement()
                        .name("BubbleOne")
                        .data([
                            [97, 36, 79],
                            [94, 74, 60],
                            [68, 76, 58],
                            [64, 87, 56],
                            [68, 27, 73],
                            [74, 99, 42],
                            [7,  93, 99],
                            [51, 69, 40],
                            [38, 23, 33]
                            ])
                        .toDic()!,
                    AASeriesElement()
                        .name("BubbleTwo")
                        .data([
                            [25, 60, 87],
                            [2,  75, 59],
                            [11, 54, 8 ],
                            [86, 55, 93],
                            [5,  33, 88],
                            [90, 63, 44],
                            [91, 43, 17],
                            [97, 56, 56],
                            [15, 67, 48]
                            ])
                        .toDic()!,
                    ])
        
        // 图表视图对象调用图表模型对象,绘制最终图形
        aaChartView.aa_drawChartWithChartModel(chartModel)
    }
}
评论

全部评论(0)

回到顶部