iOS 图表框架 Charts

1.github示例图

请添加图片描述

请添加图片描述

2.Charts的GitHub网址

Charts - github

3.在github上下载后把demo跑在手机上的截屏

请添加图片描述

请添加图片描述

4.怎样使用

iOS-Charts看这个就够了 - 稀土掘金

4.1 条形图 - BarChartView

4.1.2 用条形图展示睡眠

请添加图片描述

  • 要实现上面的效果
 func addBarChart(){
    
    
        let chartView = HorizontalBarChartView(frame: CGRect(x: 0, y: 300, width: view.frame.size.width, height: 100))
        view.addSubview(chartView)
        chartView.backgroundColor = .yellow
        
        let xAxis = chartView.xAxis
        xAxis.enabled = false
        
        let leftAxis = chartView.leftAxis
        leftAxis.enabled = false
        
        let rightAxis = chartView.rightAxis
        rightAxis.enabled = false
        
        //最大值到顶部所占整个轴的百分比,默认0.1
        leftAxis.spaceTop = 0.01
        //最小值到底部所占整个轴的百分比,默认0.1
        leftAxis.spaceBottom = 0.01
        
        //是否显示图例
        chartView.legend.enabled = false
        
        //浅,green 7
        //深,red  2
        //醒,black  1
        //data
        let yVals = [
            BarChartDataEntry(x: 0, yValues: [7,2,1]),
            BarChartDataEntry(x: 1, yValues: [7,2,1])
        ]
        
        let set = BarChartDataSet(entries: yVals)
        set.drawValuesEnabled = false
        set.colors = [NSUIColor.green,NSUIColor.yellow,NSUIColor.yellow,
                      NSUIColor.yellow,NSUIColor.red,NSUIColor.black]
        
        let data = BarChartData(dataSet: set)
        //圆柱和间距的比例,默认0.85
        data.barWidth = 1
        chartView.data = data
        
    }

  • 上面的代码实现的效果如下图
    请添加图片描述

参考博客:
iOS Charts库的简单使用 - BarChartView

4.2 折线图 - LineChartView

Swift - 第三方图表库Charts使用详解8(折线图7:事件响应、MarkerView标签)

4.3 扇形图(饼状图) - PieChartView

请添加图片描述

override func viewDidLoad() {
    
    
        super.viewDidLoad()
        
        view.backgroundColor = .white

        let pieChartView = PieChartView(frame: CGRect(x: 0, y: 50, width: 200, height: 200))
        view.addSubview(pieChartView)
        pieChartView.backgroundColor = .gray
        
        //中心文字
        pieChartView.centerText = "睡眠占比"
        //是否显示图例
        pieChartView.legend.enabled = false
        
        let datas: [Double] = [32, 100, 65]

        var values = [PieChartDataEntry]()
        for i in 0..<datas.count {
    
    
            values.append(PieChartDataEntry(value: datas[i], label: "\(Int(datas[i]))分"))
            //            let entry = PieChartDataEntry(value: datas[i])
//            values.append(entry)
        }

        let dataSet = PieChartDataSet(entries: values, label: "图例")
        //是否显示数值。默认true
        dataSet.drawValuesEnabled = false

        dataSet.colors = [NSUIColor.black,NSUIColor.red,NSUIColor.green]
        
        

        let data = PieChartData(dataSet: dataSet)

        pieChartView.data = data
        
    }

参考博客:
iOS Charts库的简单使用 - PieChartView

5.遇到的问题

问题一

  • 1.条形图点击的时候不调用代理方法chartValueSelected(只有几个会调用),总是调用代理方法chartValueNothingSelected

下载的demo没有这个问题,而pod后自己写的demo有这个问题,应该是pod的charts库有bug

解决方法,下载4.1.0的demo,然后手动导入Charts

猜你喜欢

转载自blog.csdn.net/baidu_40537062/article/details/130362266