美文网首页
Swift Charts饼状图

Swift Charts饼状图

作者: 你美你媚儿 | 来源:发表于2018-07-12 18:16 被阅读0次

饼状图

//

//  PieChartController.swift

//  chartsTest

//

//  Created by yjmac on 2018/7/12.

//  Copyright © 2018年 yjmac. All rights reserved.

//

import UIKit

importCharts

classDigitValueFormatter:NSObject,IValueFormatter{

    funcstringForValue(_value:Double, entry:ChartDataEntry, dataSetIndex:Int, viewPortHandler:ViewPortHandler?) ->String{

        letvalueWithoutDecimalPart =String(format:"%.2f%%", value)

        returnvalueWithoutDecimalPart

    }

}

classPieChartController:UIViewController{

    //饼状图

    letpieChart =PieChartView(frame:CGRect(x:0, y:120, width:BKLScreenWidth, height:300))

    overridefuncviewDidLoad() {

        super.viewDidLoad()

        configbarChat()

    }

    funcconfigbarChat() {

        title="饼状图"

        view.backgroundColor = .white

        view.addSubview(pieChart)

        let months = ["1-9", "10-19", "20-29", "30-39","40-49", "50-59", "60-69", "70以上"]

        letunitsSold = [30.0,100.0,108.0,60.0,50.0,160.0,187.0,60.0]

        setChart(dataPoints: months, values: unitsSold)

    }

    funcsetChart(dataPoints: [String], values: [Double]) {

        vardataEntries: [ChartDataEntry] = []

        foriin0..

            letentry =PieChartDataEntry(value: values[i], label:"\(dataPoints[i])")//设置数据 title和对应的值

            dataEntries.append(entry)

        }

        letpiechartDataSet =PieChartDataSet(values: dataEntries, label:"年龄库示例")

        letpieChartData =PieChartData(dataSet: piechartDataSet)

        pieChart.data= pieChartData

        //设置最小的padding(图表对于整个 Chart),默认为10,不设置大一点可能会造成数据在 Chart 外无法显示

        pieChart.minOffset = 30

        //饼状图距离边缘的间隙

        pieChart.setExtraOffsets(left:30, top:0, right:30, bottom:0)

        //拖拽饼状图后是否有惯性效果

        pieChart.dragDecelerationEnabled = true

        //是否显示区块文本

        pieChart.drawSlicesUnderHoleEnabled = true

        //是否根据所提供的数据, 将显示数据转换为百分比格式

        pieChart.usePercentValuesEnabled = true

        // 设置饼状图描述

        pieChart.chartDescription?.text = "饼状年龄库图示例"

        pieChart.chartDescription?.font = .systemFont(ofSize: 10)

        pieChart.chartDescription?.textColor = .gray

        // 设置饼状图图例样式

        //图例在饼状图中的大小占比, 这会影响图例的宽高

        pieChart.legend.maxSizePercent = 1

        //文本间隔

        pieChart.legend.formToTextSpace = 5

        //字体大小

        pieChart.legend.font= .systemFont(ofSize:10)

        //字体颜色

        pieChart.legend.textColor = .gray

        //图例在饼状图中的位置

        pieChart.legend.verticalAlignment = .bottom

        //图示样式: 方形、线条、圆形

        pieChart.legend.form = .circle

        //图示大小

        pieChart.legend.formSize = 12

        //图示位置

        pieChart.legend.orientation = .horizontal

        pieChart.legend.horizontalAlignment = .center

        //设置动画

        pieChart.animate(xAxisDuration:1)

        //设置饼状图中间的空心样式

        //饼状图是否是空心

        pieChart.drawHoleEnabled = true

        //空心半径占比

        pieChart.holeRadiusPercent = 0.5

         //空心颜色

        pieChart.holeColor = .white

        //半透明空心半径占比

        pieChart.transparentCircleRadiusPercent = 0.52

        //半透明空心的颜色

        pieChart.transparentCircleColor = .red

        //是否显示中间文字

        pieChart.drawCenterTextEnabled = true

        //中间文字

        pieChart.centerText = "平均年龄";

        //相邻区块之间的间距

        piechartDataSet.sliceSpace=0

        //设置区块颜色

        piechartDataSet.colors= [.red,.orange,.purple,.yellow]

        //选中区块时, 放大的半径

        piechartDataSet.selectionShift=8

        //名称位置

        piechartDataSet.xValuePosition= .insideSlice

        //数据位置

        piechartDataSet.yValuePosition= .outsideSlice

        //数据与区块之间的用于指示的折线样式

        //折线中第一段起始位置相对于区块的偏移量, 数值越大, 折线距离区块越远

        piechartDataSet.valueLinePart1OffsetPercentage = 0.85

        //折线中第一段长度占比

        piechartDataSet.valueLinePart1Length=0.5

        //折线中第二段长度最大占比

        piechartDataSet.valueLinePart2Length=0.4

        //折线的粗细

        piechartDataSet.valueLineWidth=1

        //折线颜色

        piechartDataSet.valueLineColor= .gray

        //设置百分比

        pieChartData.setValueFormatter(DigitValueFormatter())

        //字体颜色为白色

        pieChartData.setValueTextColor(.gray)

        //字体大小

        pieChartData.setValueFont(.systemFont(ofSize:10))

    }

}

相关文章

  • Swift Charts饼状图

    饼状图 // // PieChartController.swift // chartsTest // // Cr...

  • iOS在OC项目中集成Charts绘制图表框架

    Charts以一款用于绘制图表的框架,可以绘制柱状图、折线图、K线图、饼状图等. 由于Charts只有Swift版...

  • ios-charts在 oc 中使用(Xcode8.1)

    Charts以一款用于绘制图表的框架,可以绘制柱状图、折线图、K线图、饼状图等. 由于Charts只有Swift版...

  • 图表

    推荐 Charts框架之雷达图 Charts框架之饼状图 Charts框架之折线图 Charts框架之柱状图 Ch...

  • [Swift]使用Charts绘制饼状图

    项目中用到了饼状图,在GitHub上搜索到一个比较好用的图表库Chars,里面包含了基本见过的各种图表库,这个项目...

  • iOS-charts框架之折线图详解

    前面几篇文章是《charts框架的集成》《charts柱状图》《charts饼状图》,建议大家结合起来看,这样更详...

  • charts3

    先进行charts饼状图的小测,如下,结果为正常饼状图 绘制前面数据库中的数据来找某一天交易的各类目物品的饼状图 ...

  • Charts-饼状图

    上篇文章已经讲述了折线图的用法这边文章主要来谈饼状图。其实Charts难的部分主要在于配置,所以同样主要说说他的配...

  • iOS-Charts图库引用及使用

    Charts可以绘制柱状图、折线图、K线图、饼状图等Charts,且和Android一致的图表界面MPAndroi...

  • iOS-charts框架之柱状图详解

    前面几篇文章是《charts框架的集成》《charts饼状图》《charts折线图》,建议大家结合起来看,这样更详...

网友评论

      本文标题:Swift Charts饼状图

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