美文网首页swift学习
Swift Charts3.0 用法简析

Swift Charts3.0 用法简析

作者: Ziruma | 来源:发表于2016-12-01 17:19 被阅读3504次

    Charts 功能强大,基本功能及属性如下:
    本文主要讲解的是折线图:)

    //添加Charts
            let lineChart = LineChartView()
    
            chartView.addSubview(lineChart)
            
            lineChart.snp.makeConstraints { (make) in
                make.edges.equalToSuperview().inset(UIEdgeInsetsMake(kDefault_bt_height + kDefault_20_pad + kDefault_lb_height, kDefault_24_pad, kDefault_lb_height, kDefault_24_pad))
            }
            
            let months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
            let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0]
            
            setChart(months, values: unitsSold)
    
    //设置charts方法
     func setChart(_ dataPoints: [String], values: [Double]) {
            var dataEntries: [ChartDataEntry] = []
            
            for i in 0..<dataPoints.count {
                let dataEntry = ChartDataEntry(x: Double(i), y: values[i])
                dataEntries.append(dataEntry)
            }
            
            let lineChartDataSet = LineChartDataSet(values: dataEntries, label: "单位:万元")
            let lineChartData = LineChartData(dataSet: lineChartDataSet)
            
            lineChart.data = lineChartData
     //右下角图标描述
            lineChart.chartDescription?.text = "ChartView"
            
            //左下角图例
    //        lineChart.legend.formSize = 30
    //        lineChart.legend.form = .square
            lineChart.legend.textColor = kDefault_0x949494_clolr
            
            //设置X轴坐标
            lineChart.xAxis.valueFormatter = IndexAxisValueFormatter(values: dataPoints)
            lineChart.xAxis.granularity = 1.0
            lineChart.xAxis.labelPosition = .bottom
            lineChart.xAxis.drawGridLinesEnabled = false
            lineChart.xAxis.axisLineColor = kDefault_0x949494_clolr
            lineChart.xAxis.labelTextColor = kDefault_0x949494_clolr
            
            //设置Y轴坐标
    //        lineChart.rightAxis.isEnabled = false
            //不显示右侧Y轴
            lineChart.rightAxis.drawAxisLineEnabled = false
            //不显示右侧Y轴数字
            lineChart.rightAxis.enabled = false
            lineChart.leftAxis.axisLineColor = kDefault_0x949494_clolr
            lineChart.leftAxis.gridColor = kDefault_0x949494_clolr
            lineChart.leftAxis.labelTextColor = kDefault_0x949494_clolr
    
            //设置双击坐标轴是否能缩放
            lineChart.scaleXEnabled = false
            lineChart.scaleYEnabled = false
            
    //        lineChart.dragEnabled = true
    //        lineChart.dragDecelerationEnabled = true
            
            //设置图表背景色和border
            //必须设置enable才能有效
    //        lineChart.drawGridBackgroundEnabled = true
    //        lineChart.drawBordersEnabled = true
    //        lineChart.gridBackgroundColor = UIColor.red
    //        lineChart.borderColor = UIColor.orange
    //        lineChart.borderLineWidth = 5
            
            //设置折线线条
    //        lineChartDataSet.fillColor = kDefault_0xff6600_clolr
    //        lineChartDataSet.lineWidth = 4
            
            //外圆
            lineChartDataSet.setCircleColor(kDefault_0xff6600_4_clolr)
            //画外圆
    //        lineChartDataSet.drawCirclesEnabled = true
            //内圆
            lineChartDataSet.circleHoleColor = kDefault_0xff6600_clolr
            //画内圆
    //        lineChartDataSet.drawCircleHoleEnabled = true
            
            //线条显示样式
    //        lineChartDataSet.lineDashLengths = [1,3,4,2]
    //        lineChartDataSet.lineDashPhase = 0.5
            lineChartDataSet.colors = [kDefault_0xff872e_clolr]
            
            //线条上的文字
            lineChartDataSet.valueColors = [kDefault_0xff872e_clolr]
            //显示
    //        lineChartDataSet.drawValuesEnabled = true
            
            //添加显示动画
            lineChart.animate(xAxisDuration: 1)
        }
    
    

    下面是样式


    QQ20161201-0@2x.png

    Charts第一次使用就能发现它的强大和无可挑剔,完全可以实现自定义的基本样式。

    -end

    相关文章

      网友评论

      • SantanK_0a49:怎么设置的,求告知,现在遇到出不来X轴的问题
      • 听海听心:您好,请问一下,那个左下角图例的颜色为什么修改不了啊?一直显示的默认的颜色。
      • 孤独感爆棚:为什么我设置xAxis.valueFormatter,就出不来呢
        SantanK_0a49:现在可以出来么。我遇到了同样的问题
      • 莫寂岚:非常不好意思,有个疑问哈。我按照你的代码弄,结果x轴的月份没有显示,请问这个在哪里控制呢?
        iGoing:同这个问题,死活不出来
        莫寂岚:@孤独感爆棚 是charts的bug,设置XAxis的时候有些问题。
        孤独感爆棚:我也遇到了同样的问题,请问解决了吗
      • 莫寂岚:很好奇你的颜色的定义是怎么写的,kDefault_0xff6600_clolr
        Ziruma:哈哈哈,这代码都是很早写的了,sorry啊
      • 叫我小灿吧:求双Y轴demo。要求一些数据对应Y轴1,一些数据对应Y轴2
      • EE_L:怎么让 LineChartView 折线图的 点 . 变成方点.. 只找到了 设置圆点 的大小/颜色 的方法..
        听海听心:lineChart.legend.form
      • 翻滚的炒勺2013:3.0在哪里下载 ?
      • huaban15du:感谢作者,想请教个问题。Charts更新到3.0.2后,保存图片的方法也更新了。原来的saveToCameraRoll方法已经去掉。新方法save是不是只能将图片保存在指定位置,不能直接保存到相册了呢
      • Dimon_Hu:十分感谢,解决了我从2.3.0到3.0一直找不到的一个问题。不过
        ChartYAxis *leftAxis = chartView.leftAxis;
        leftAxis.valueFormatter 这个怎么设置的。
        SantanK_0a49:@Dimon_Hu 怎么设置的,求告知,现在遇到出不来X轴的问题
        Dimon_Hu:@科24 也不是,他又换成了一个类来设置。面向协议在oc中用不了。已经知会作者改其他的了。已经设置好了
        科24:你出现用cocopods导入 无法import对应的文件吗?
      • 简人Lmy:求饼状图的demo~
        Kean_Qi:swift 版本的饼状图百分比怎么显示
        let formatter: NumberFormatter = NumberFormatter()
        formatter.numberStyle = .percent
        formatter.maximumFractionDigits = 0
        formatter.multiplier = 1.0
        formatter.percentSymbol = " %";
        pieChartData.setValueFormatter(formatter as? IValueFormatter)
        用不了了
        杨老师红烧肉:搞到了吗 搞到了给我发一份

      本文标题:Swift Charts3.0 用法简析

      本文链接:https://www.haomeiwen.com/subject/iavxmttx.html